
dinput.nostrip.dll:     file format pei-i386

Disassembly of section .text:

5f581000 <_DllMainCRTStartup@12>:
5f581000:	55                   	push   %ebp
5f581001:	89 e5                	mov    %esp,%ebp
5f581003:	57                   	push   %edi
5f581004:	56                   	push   %esi
5f581005:	53                   	push   %ebx
5f581006:	83 ec 0c             	sub    $0xc,%esp
5f581009:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f58100c:	83 ff 01             	cmp    $0x1,%edi
5f58100f:	0f 84 ab 00 00 00    	je     5f5810c0 <_DllMainCRTStartup@12+0xc0>
5f581015:	89 7c 24 04          	mov    %edi,0x4(%esp)
5f581019:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f58101c:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f58101f:	89 5c 24 08          	mov    %ebx,0x8(%esp)
5f581023:	89 0c 24             	mov    %ecx,(%esp)
5f581026:	e8 15 13 00 00       	call   5f582340 <_DllMain@12>
5f58102b:	89 c6                	mov    %eax,%esi
5f58102d:	83 ec 0c             	sub    $0xc,%esp
5f581030:	83 ff 01             	cmp    $0x1,%edi
5f581033:	0f 94 c2             	sete   %dl
5f581036:	31 c0                	xor    %eax,%eax
5f581038:	85 f6                	test   %esi,%esi
5f58103a:	0f 94 c0             	sete   %al
5f58103d:	85 c2                	test   %eax,%edx
5f58103f:	74 5b                	je     5f58109c <_DllMainCRTStartup@12+0x9c>
5f581041:	8b 15 00 e0 58 5f    	mov    0x5f58e000,%edx
5f581047:	85 d2                	test   %edx,%edx
5f581049:	74 45                	je     5f581090 <_DllMainCRTStartup@12+0x90>
5f58104b:	8b 1d 10 e0 58 5f    	mov    0x5f58e010,%ebx
5f581051:	eb 0d                	jmp    5f581060 <_DllMainCRTStartup@12+0x60>
5f581053:	90                   	nop    
5f581054:	90                   	nop    
5f581055:	90                   	nop    
5f581056:	90                   	nop    
5f581057:	90                   	nop    
5f581058:	90                   	nop    
5f581059:	90                   	nop    
5f58105a:	90                   	nop    
5f58105b:	90                   	nop    
5f58105c:	90                   	nop    
5f58105d:	90                   	nop    
5f58105e:	90                   	nop    
5f58105f:	90                   	nop    
5f581060:	83 eb 04             	sub    $0x4,%ebx
5f581063:	39 d3                	cmp    %edx,%ebx
5f581065:	72 19                	jb     5f581080 <_DllMainCRTStartup@12+0x80>
5f581067:	8b 03                	mov    (%ebx),%eax
5f581069:	85 c0                	test   %eax,%eax
5f58106b:	74 f3                	je     5f581060 <_DllMainCRTStartup@12+0x60>
5f58106d:	ff d0                	call   *%eax
5f58106f:	8b 15 00 e0 58 5f    	mov    0x5f58e000,%edx
5f581075:	83 eb 04             	sub    $0x4,%ebx
5f581078:	39 d3                	cmp    %edx,%ebx
5f58107a:	73 eb                	jae    5f581067 <_DllMainCRTStartup@12+0x67>
5f58107c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f581080:	89 14 24             	mov    %edx,(%esp)
5f581083:	e8 d8 69 00 00       	call   5f587a60 <_free>
5f581088:	31 d2                	xor    %edx,%edx
5f58108a:	89 15 00 e0 58 5f    	mov    %edx,0x5f58e000
5f581090:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
5f581097:	e8 b4 69 00 00       	call   5f587a50 <_fflush>
5f58109c:	85 ff                	test   %edi,%edi
5f58109e:	75 10                	jne    5f5810b0 <_DllMainCRTStartup@12+0xb0>
5f5810a0:	8b 15 00 e0 58 5f    	mov    0x5f58e000,%edx
5f5810a6:	85 d2                	test   %edx,%edx
5f5810a8:	75 46                	jne    5f5810f0 <_DllMainCRTStartup@12+0xf0>
5f5810aa:	31 f6                	xor    %esi,%esi
5f5810ac:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5810b0:	89 f0                	mov    %esi,%eax
5f5810b2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5810b5:	5b                   	pop    %ebx
5f5810b6:	5e                   	pop    %esi
5f5810b7:	5f                   	pop    %edi
5f5810b8:	5d                   	pop    %ebp
5f5810b9:	c2 0c 00             	ret    $0xc
5f5810bc:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5810c0:	c7 04 24 80 00 00 00 	movl   $0x80,(%esp)
5f5810c7:	e8 b4 69 00 00       	call   5f587a80 <_malloc>
5f5810cc:	a3 00 e0 58 5f       	mov    %eax,0x5f58e000
5f5810d1:	85 c0                	test   %eax,%eax
5f5810d3:	74 6c                	je     5f581141 <_DllMainCRTStartup@12+0x141>
5f5810d5:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
5f5810db:	a3 10 e0 58 5f       	mov    %eax,0x5f58e010
5f5810e0:	e8 eb 65 00 00       	call   5f5876d0 <__pei386_runtime_relocator>
5f5810e5:	e8 76 65 00 00       	call   5f587660 <___main>
5f5810ea:	e9 26 ff ff ff       	jmp    5f581015 <_DllMainCRTStartup@12+0x15>
5f5810ef:	90                   	nop    
5f5810f0:	8b 1d 10 e0 58 5f    	mov    0x5f58e010,%ebx
5f5810f6:	8d 76 00             	lea    0x0(%esi),%esi
5f5810f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi
5f581100:	83 eb 04             	sub    $0x4,%ebx
5f581103:	39 d3                	cmp    %edx,%ebx
5f581105:	72 19                	jb     5f581120 <_DllMainCRTStartup@12+0x120>
5f581107:	8b 03                	mov    (%ebx),%eax
5f581109:	85 c0                	test   %eax,%eax
5f58110b:	74 f3                	je     5f581100 <_DllMainCRTStartup@12+0x100>
5f58110d:	ff d0                	call   *%eax
5f58110f:	8b 15 00 e0 58 5f    	mov    0x5f58e000,%edx
5f581115:	83 eb 04             	sub    $0x4,%ebx
5f581118:	39 d3                	cmp    %edx,%ebx
5f58111a:	73 eb                	jae    5f581107 <_DllMainCRTStartup@12+0x107>
5f58111c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f581120:	89 14 24             	mov    %edx,(%esp)
5f581123:	31 ff                	xor    %edi,%edi
5f581125:	e8 36 69 00 00       	call   5f587a60 <_free>
5f58112a:	89 3d 00 e0 58 5f    	mov    %edi,0x5f58e000
5f581130:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
5f581137:	e8 14 69 00 00       	call   5f587a50 <_fflush>
5f58113c:	e9 6f ff ff ff       	jmp    5f5810b0 <_DllMainCRTStartup@12+0xb0>
5f581141:	e8 2a 69 00 00       	call   5f587a70 <__errno>
5f581146:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
5f58114c:	31 c0                	xor    %eax,%eax
5f58114e:	e9 5f ff ff ff       	jmp    5f5810b2 <_DllMainCRTStartup@12+0xb2>
5f581153:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f581159:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581160 <_atexit>:
5f581160:	55                   	push   %ebp
5f581161:	ba 10 e0 58 5f       	mov    $0x5f58e010,%edx
5f581166:	89 e5                	mov    %esp,%ebp
5f581168:	83 ec 18             	sub    $0x18,%esp
5f58116b:	b9 00 e0 58 5f       	mov    $0x5f58e000,%ecx
5f581170:	8b 45 08             	mov    0x8(%ebp),%eax
5f581173:	89 54 24 08          	mov    %edx,0x8(%esp)
5f581177:	89 4c 24 04          	mov    %ecx,0x4(%esp)
5f58117b:	89 04 24             	mov    %eax,(%esp)
5f58117e:	e8 bd 68 00 00       	call   5f587a40 <___dllonexit>
5f581183:	c9                   	leave  
5f581184:	83 f8 01             	cmp    $0x1,%eax
5f581187:	19 c0                	sbb    %eax,%eax
5f581189:	c3                   	ret    
5f58118a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f581190 <__onexit>:
5f581190:	55                   	push   %ebp
5f581191:	b9 10 e0 58 5f       	mov    $0x5f58e010,%ecx
5f581196:	89 e5                	mov    %esp,%ebp
5f581198:	83 ec 18             	sub    $0x18,%esp
5f58119b:	ba 00 e0 58 5f       	mov    $0x5f58e000,%edx
5f5811a0:	8b 45 08             	mov    0x8(%ebp),%eax
5f5811a3:	89 4c 24 08          	mov    %ecx,0x8(%esp)
5f5811a7:	89 54 24 04          	mov    %edx,0x4(%esp)
5f5811ab:	89 04 24             	mov    %eax,(%esp)
5f5811ae:	e8 8d 68 00 00       	call   5f587a40 <___dllonexit>
5f5811b3:	c9                   	leave  
5f5811b4:	c3                   	ret    
5f5811b5:	90                   	nop    
5f5811b6:	90                   	nop    
5f5811b7:	90                   	nop    
5f5811b8:	90                   	nop    
5f5811b9:	90                   	nop    
5f5811ba:	90                   	nop    
5f5811bb:	90                   	nop    
5f5811bc:	90                   	nop    
5f5811bd:	90                   	nop    
5f5811be:	90                   	nop    
5f5811bf:	90                   	nop    

5f5811c0 <___do_sjlj_init>:
5f5811c0:	55                   	push   %ebp
5f5811c1:	89 e5                	mov    %esp,%ebp
5f5811c3:	5d                   	pop    %ebp
5f5811c4:	e9 e7 65 00 00       	jmp    5f5877b0 <___w32_sharedptr_initialize>
5f5811c9:	90                   	nop    
5f5811ca:	90                   	nop    
5f5811cb:	90                   	nop    
5f5811cc:	90                   	nop    
5f5811cd:	90                   	nop    
5f5811ce:	90                   	nop    
5f5811cf:	90                   	nop    

5f5811d0 <__dump_cooperativelevel_DI>:
5f5811d0:	55                   	push   %ebp
5f5811d1:	31 c0                	xor    %eax,%eax
5f5811d3:	89 e5                	mov    %esp,%ebp
5f5811d5:	40                   	inc    %eax
5f5811d6:	83 f8 03             	cmp    $0x3,%eax
5f5811d9:	76 fa                	jbe    5f5811d5 <__dump_cooperativelevel_DI+0x5>
5f5811db:	5d                   	pop    %ebp
5f5811dc:	c3                   	ret    
5f5811dd:	8d 76 00             	lea    0x0(%esi),%esi

5f5811e0 <__dump_EnumObjects_flags>:
	DPRINTF("\n");
    }
}

void _dump_EnumObjects_flags(DWORD dwFlags) {
5f5811e0:	55                   	push   %ebp
5f5811e1:	89 e5                	mov    %esp,%ebp
    if (TRACE_ON(dinput)) {
	unsigned int   i;
	DWORD type, instance;
	static const struct {
	    DWORD       mask;
	    const char  *name;
	} flags[] = {
#define FE(x) { x, #x}
	    FE(DIDFT_RELAXIS),
	    FE(DIDFT_ABSAXIS),
	    FE(DIDFT_PSHBUTTON),
	    FE(DIDFT_TGLBUTTON),
	    FE(DIDFT_POV),
	    FE(DIDFT_COLLECTION),
	    FE(DIDFT_NODATA),	    
	    FE(DIDFT_FFACTUATOR),
	    FE(DIDFT_FFEFFECTTRIGGER),
	    FE(DIDFT_OUTPUT)
#undef FE
	};
	type = (dwFlags & 0xFF0000FF);
	instance = ((dwFlags >> 8) & 0xFFFF);
	DPRINTF("Type:");
	if (type == DIDFT_ALL) {
5f5811e3:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f5811e6:	81 e1 ff 00 00 ff    	and    $0xff0000ff,%ecx
5f5811ec:	74 18                	je     5f581206 <__dump_EnumObjects_flags+0x26>
	    DPRINTF(" DIDFT_ALL");
	} else {
	    for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++) {
5f5811ee:	31 d2                	xor    %edx,%edx
		if (flags[i].mask & type) {
5f5811f0:	8b 04 d5 80 a1 58 5f 	mov    0x5f58a180(,%edx,8),%eax
5f5811f7:	85 c1                	test   %eax,%ecx
5f5811f9:	74 05                	je     5f581200 <__dump_EnumObjects_flags+0x20>
		    type &= ~flags[i].mask;
5f5811fb:	83 f0 ff             	xor    $0xffffffff,%eax
5f5811fe:	21 c1                	and    %eax,%ecx
5f581200:	42                   	inc    %edx
5f581201:	83 fa 09             	cmp    $0x9,%edx
5f581204:	76 ea                	jbe    5f5811f0 <__dump_EnumObjects_flags+0x10>
		    DPRINTF(" %s",flags[i].name);
		}
	    }
	    if (type) {
		DPRINTF(" (unhandled: %08lx)", type);
	    }
	}
	DPRINTF(" / Instance: ");
	if (instance == ((DIDFT_ANYINSTANCE >> 8) & 0xFFFF)) {
5f581206:	5d                   	pop    %ebp
5f581207:	c3                   	ret    
5f581208:	90                   	nop    
5f581209:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f581210 <__dump_DIPROPHEADER>:
	    DPRINTF("DIDFT_ANYINSTANCE");
	} else {
	    DPRINTF("%3ld", instance);
	}
    }
}

void _dump_DIPROPHEADER(LPCDIPROPHEADER diph) {
5f581210:	55                   	push   %ebp
5f581211:	89 e5                	mov    %esp,%ebp
    if (TRACE_ON(dinput)) {
5f581213:	5d                   	pop    %ebp
5f581214:	c3                   	ret    
5f581215:	8d 74 26 00          	lea    0x0(%esi),%esi
5f581219:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581220 <__dump_OBJECTINSTANCEA>:
	DPRINTF("  - dwObj = 0x%08lx\n", diph->dwObj);
	DPRINTF("  - dwHow = %s\n",
		((diph->dwHow == DIPH_DEVICE) ? "DIPH_DEVICE" :
		 ((diph->dwHow == DIPH_BYOFFSET) ? "DIPH_BYOFFSET" :
		  ((diph->dwHow == DIPH_BYID)) ? "DIPH_BYID" : "unknown")));
    }
}

void _dump_OBJECTINSTANCEA(DIDEVICEOBJECTINSTANCEA *ddoi) {
5f581220:	55                   	push   %ebp
5f581221:	89 e5                	mov    %esp,%ebp
    if (TRACE_ON(dinput)) {
5f581223:	5d                   	pop    %ebp
5f581224:	c3                   	ret    
5f581225:	8d 74 26 00          	lea    0x0(%esi),%esi
5f581229:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581230 <__dump_OBJECTINSTANCEW>:
	DPRINTF("    - enumerating : %s ('%s') - %2ld - 0x%08lx - %s\n",
		debugstr_guid(&ddoi->guidType), _dump_dinput_GUID(&ddoi->guidType), ddoi->dwOfs, ddoi->dwType, ddoi->tszName);
    }
}

void _dump_OBJECTINSTANCEW(DIDEVICEOBJECTINSTANCEW *ddoi) {
5f581230:	55                   	push   %ebp
5f581231:	89 e5                	mov    %esp,%ebp
    if (TRACE_ON(dinput)) {
5f581233:	5d                   	pop    %ebp
5f581234:	c3                   	ret    
5f581235:	8d 74 26 00          	lea    0x0(%esi),%esi
5f581239:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581240 <__dump_dinput_GUID>:
	DPRINTF("    - enumerating : %s ('%s'), - %2ld - 0x%08lx - %s\n",
		debugstr_guid(&ddoi->guidType), _dump_dinput_GUID(&ddoi->guidType), ddoi->dwOfs, ddoi->dwType, debugstr_w(ddoi->tszName));
    }
}

/* This function is a helper to convert a GUID into any possible DInput GUID out there */
const char *_dump_dinput_GUID(const GUID *guid) {
5f581240:	55                   	push   %ebp
    unsigned int i;
    static const struct {
	const GUID *guid;
	const char *name;
    } guids[] = {
#define FE(x) { &x, #x}
	FE(GUID_XAxis),
	FE(GUID_YAxis),
	FE(GUID_ZAxis),
	FE(GUID_RxAxis),
	FE(GUID_RyAxis),
	FE(GUID_RzAxis),
	FE(GUID_Slider),
	FE(GUID_Button),
	FE(GUID_Key),
	FE(GUID_POV),
	FE(GUID_Unknown),
	FE(GUID_SysMouse),
	FE(GUID_SysKeyboard),
	FE(GUID_Joystick),
	FE(GUID_ConstantForce),
	FE(GUID_RampForce),
	FE(GUID_Square),
	FE(GUID_Sine),
	FE(GUID_Triangle),
	FE(GUID_SawtoothUp),
	FE(GUID_SawtoothDown),
	FE(GUID_Spring),
	FE(GUID_Damper),
	FE(GUID_Inertia),
	FE(GUID_Friction),
	FE(GUID_CustomForce)
#undef FE
    };
    if (guid == NULL)
	return "null GUID";
5f581241:	b8 10 a4 58 5f       	mov    $0x5f58a410,%eax
5f581246:	89 e5                	mov    %esp,%ebp
5f581248:	57                   	push   %edi
5f581249:	56                   	push   %esi
5f58124a:	53                   	push   %ebx
5f58124b:	8b 55 08             	mov    0x8(%ebp),%edx
5f58124e:	85 d2                	test   %edx,%edx
5f581250:	74 25                	je     5f581277 <__dump_dinput_GUID+0x37>
5f581252:	fc                   	cld    
    for (i = 0; i < (sizeof(guids) / sizeof(guids[0])); i++) {
5f581253:	31 db                	xor    %ebx,%ebx
5f581255:	eb 06                	jmp    5f58125d <__dump_dinput_GUID+0x1d>
5f581257:	43                   	inc    %ebx
5f581258:	83 fb 19             	cmp    $0x19,%ebx
5f58125b:	77 1f                	ja     5f58127c <__dump_dinput_GUID+0x3c>
	if (IsEqualGUID(guids[i].guid, guid)) {
5f58125d:	8b 34 dd 40 a3 58 5f 	mov    0x5f58a340(,%ebx,8),%esi
5f581264:	b9 10 00 00 00       	mov    $0x10,%ecx
5f581269:	8b 7d 08             	mov    0x8(%ebp),%edi
5f58126c:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58126e:	75 e7                	jne    5f581257 <__dump_dinput_GUID+0x17>
	    return guids[i].name;
5f581270:	8b 04 dd 44 a3 58 5f 	mov    0x5f58a344(,%ebx,8),%eax
	}
    }
    return "Unknown GUID";
}
5f581277:	5b                   	pop    %ebx
5f581278:	5e                   	pop    %esi
5f581279:	5f                   	pop    %edi
5f58127a:	5d                   	pop    %ebp
5f58127b:	c3                   	ret    
5f58127c:	b8 1a a4 58 5f       	mov    $0x5f58a41a,%eax
5f581281:	5b                   	pop    %ebx
5f581282:	5e                   	pop    %esi
5f581283:	5f                   	pop    %edi
5f581284:	5d                   	pop    %ebp
5f581285:	c3                   	ret    
5f581286:	8d 76 00             	lea    0x0(%esi),%esi
5f581289:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581290 <__dump_DIDATAFORMAT>:

void _dump_DIDATAFORMAT(const DIDATAFORMAT *df) {
5f581290:	55                   	push   %ebp
5f581291:	89 e5                	mov    %esp,%ebp
5f581293:	56                   	push   %esi
5f581294:	53                   	push   %ebx
    unsigned int i;

    TRACE("Dumping DIDATAFORMAT structure:\n");
    TRACE("  - dwSize: %ld\n", df->dwSize);
    if (df->dwSize != sizeof(DIDATAFORMAT)) {
	WARN("Non-standard DIDATAFORMAT structure size (%ld instead of %d).\n", df->dwSize, sizeof(DIDATAFORMAT));
    }
    TRACE("  - dwObjsize: %ld\n", df->dwObjSize);
    if (df->dwObjSize != sizeof(DIOBJECTDATAFORMAT)) {
	WARN("Non-standard DIOBJECTDATAFORMAT structure size (%ld instead of %d).\n", df->dwObjSize, sizeof(DIOBJECTDATAFORMAT));
    }
    TRACE("  - dwFlags: 0x%08lx (", df->dwFlags);
    switch (df->dwFlags) {
        case DIDF_ABSAXIS: TRACE("DIDF_ABSAXIS"); break;
	case DIDF_RELAXIS: TRACE("DIDF_RELAXIS"); break;
	default: TRACE("unknown"); break;
    }
    TRACE(")\n");
    TRACE("  - dwDataSize: %ld\n", df->dwDataSize);
    TRACE("  - dwNumObjs: %ld\n", df->dwNumObjs);
    
    for (i = 0; i < df->dwNumObjs; i++) {
5f581295:	31 db                	xor    %ebx,%ebx
5f581297:	8b 75 08             	mov    0x8(%ebp),%esi
5f58129a:	8b 46 10             	mov    0x10(%esi),%eax
5f58129d:	85 c0                	test   %eax,%eax
5f58129f:	75 07                	jne    5f5812a8 <__dump_DIDATAFORMAT+0x18>
5f5812a1:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5812a4:	5b                   	pop    %ebx
5f5812a5:	5e                   	pop    %esi
5f5812a6:	5d                   	pop    %ebp
5f5812a7:	c3                   	ret    
	TRACE("  - Object %d:\n", i);
	TRACE("      * GUID: %s ('%s')\n", debugstr_guid(df->rgodf[i].pguid), _dump_dinput_GUID(df->rgodf[i].pguid));
	TRACE("      * dwOfs: %ld\n", df->rgodf[i].dwOfs);
	TRACE("      * dwType: 0x%08lx\n", df->rgodf[i].dwType);
	TRACE("        "); _dump_EnumObjects_flags(df->rgodf[i].dwType); TRACE("\n");
5f5812a8:	89 d8                	mov    %ebx,%eax
5f5812aa:	8b 56 14             	mov    0x14(%esi),%edx
5f5812ad:	c1 e0 04             	shl    $0x4,%eax
5f5812b0:	43                   	inc    %ebx
5f5812b1:	8b 44 10 08          	mov    0x8(%eax,%edx,1),%eax
5f5812b5:	50                   	push   %eax
5f5812b6:	e8 25 ff ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f5812bb:	59                   	pop    %ecx
5f5812bc:	39 5e 10             	cmp    %ebx,0x10(%esi)
5f5812bf:	76 e0                	jbe    5f5812a1 <__dump_DIDATAFORMAT+0x11>
5f5812c1:	89 d8                	mov    %ebx,%eax
5f5812c3:	8b 56 14             	mov    0x14(%esi),%edx
5f5812c6:	c1 e0 04             	shl    $0x4,%eax
5f5812c9:	43                   	inc    %ebx
5f5812ca:	8b 44 10 08          	mov    0x8(%eax,%edx,1),%eax
5f5812ce:	50                   	push   %eax
5f5812cf:	e8 0c ff ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f5812d4:	59                   	pop    %ecx
5f5812d5:	39 5e 10             	cmp    %ebx,0x10(%esi)
5f5812d8:	77 ce                	ja     5f5812a8 <__dump_DIDATAFORMAT+0x18>
5f5812da:	eb c5                	jmp    5f5812a1 <__dump_DIDATAFORMAT+0x11>
5f5812dc:	8d 74 26 00          	lea    0x0(%esi),%esi

5f5812e0 <_fill_DataFormat>:
	TRACE("      * dwFlags: 0x%08lx\n", df->rgodf[i].dwFlags);
    }
}

/* Conversion between internal data buffer and external data buffer */
void fill_DataFormat(void *out, const void *in, DataFormat *df) {
5f5812e0:	55                   	push   %ebp
5f5812e1:	89 e5                	mov    %esp,%ebp
5f5812e3:	57                   	push   %edi
5f5812e4:	56                   	push   %esi
5f5812e5:	53                   	push   %ebx
5f5812e6:	83 ec 1c             	sub    $0x1c,%esp
5f5812e9:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f5812ec:	8b 45 08             	mov    0x8(%ebp),%eax
5f5812ef:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f5812f2:	8b 55 0c             	mov    0xc(%ebp),%edx
5f5812f5:	89 4d e8             	mov    %ecx,0xffffffe8(%ebp)
    int i;
    char *in_c = (char *) in;
    char *out_c = (char *) out;
    
    if (df->dt == NULL) {
5f5812f8:	89 c8                	mov    %ecx,%eax
5f5812fa:	8b 49 08             	mov    0x8(%ecx),%ecx
5f5812fd:	89 55 ec             	mov    %edx,0xffffffec(%ebp)
5f581300:	85 c9                	test   %ecx,%ecx
5f581302:	0f 84 bf 00 00 00    	je     5f5813c7 <_fill_DataFormat+0xe7>
	/* This means that the app uses Wine's internal data format */
	memcpy(out, in, df->internal_format_size);
    } else {
	for (i = 0; i < df->size; i++) {
5f581308:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
5f58130b:	31 f6                	xor    %esi,%esi
5f58130d:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
5f581314:	8b 3a                	mov    (%edx),%edi
5f581316:	83 ff 00             	cmp    $0x0,%edi
5f581319:	7f 4f                	jg     5f58136a <_fill_DataFormat+0x8a>
5f58131b:	90                   	nop    
5f58131c:	8d 74 26 00          	lea    0x0(%esi),%esi
	    if (df->dt[i].offset_in >= 0) {
		switch (df->dt[i].size) {
		    case 1:
		        TRACE("Copying (c) to %d from %d (value %d)\n",
			      df->dt[i].offset_out, df->dt[i].offset_in, *((char *) (in_c + df->dt[i].offset_in)));
			*((char *) (out_c + df->dt[i].offset_out)) = *((char *) (in_c + df->dt[i].offset_in));
			break;
		    
		    case 2:
			TRACE("Copying (s) to %d from %d (value %d)\n",
			      df->dt[i].offset_out, df->dt[i].offset_in, *((short *) (in_c + df->dt[i].offset_in)));
			*((short *) (out_c + df->dt[i].offset_out)) = *((short *) (in_c + df->dt[i].offset_in));
			break;
		    
		    case 4:
			TRACE("Copying (i) to %d from %d (value %d)\n",
			      df->dt[i].offset_out, df->dt[i].offset_in, *((int *) (in_c + df->dt[i].offset_in)));
			*((int *) (out_c + df->dt[i].offset_out)) = *((int *) (in_c + df->dt[i].offset_in));
			break;
		    
		    default:
			memcpy((out_c + df->dt[i].offset_out), (in_c + df->dt[i].offset_in), df->dt[i].size);
			break;
		}
	    } else {
		switch (df->dt[i].size) {
		    case 1:
		        TRACE("Copying (c) to %d default value %d\n",
			      df->dt[i].offset_out, df->dt[i].value);
			*((char *) (out_c + df->dt[i].offset_out)) = (char) df->dt[i].value;
			break;
			
		    case 2:
			TRACE("Copying (s) to %d default value %d\n",
			      df->dt[i].offset_out, df->dt[i].value);
			*((short *) (out_c + df->dt[i].offset_out)) = (short) df->dt[i].value;
			break;
			
		    case 4:
			TRACE("Copying (i) to %d default value %d\n",
			      df->dt[i].offset_out, df->dt[i].value);
			*((int *) (out_c + df->dt[i].offset_out)) = (int) df->dt[i].value;
			break;
			
		    default:
			memset((out_c + df->dt[i].offset_out), df->dt[i].size, 0);
			break;
		}
	    }
	}
    }
}
5f581320:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f581323:	5b                   	pop    %ebx
5f581324:	5e                   	pop    %esi
5f581325:	5f                   	pop    %edi
5f581326:	5d                   	pop    %ebp
5f581327:	c3                   	ret    
5f581328:	48                   	dec    %eax
5f581329:	0f 84 aa 00 00 00    	je     5f5813d9 <_fill_DataFormat+0xf9>
5f58132f:	8b 44 0e 08          	mov    0x8(%esi,%ecx,1),%eax
5f581333:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
5f581336:	8b 7c 0e 04          	mov    0x4(%esi,%ecx,1),%edi
5f58133a:	01 c2                	add    %eax,%edx
5f58133c:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f58133f:	53                   	push   %ebx
5f581340:	01 f8                	add    %edi,%eax
5f581342:	8b 0c 0e             	mov    (%esi,%ecx,1),%ecx
5f581345:	51                   	push   %ecx
5f581346:	50                   	push   %eax
5f581347:	52                   	push   %edx
5f581348:	e8 13 62 00 00       	call   5f587560 <_memcpy>
5f58134d:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
5f581350:	83 c4 10             	add    $0x10,%esp
5f581353:	8b 3a                	mov    (%edx),%edi
5f581355:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
5f581358:	83 c6 10             	add    $0x10,%esi
5f58135b:	40                   	inc    %eax
5f58135c:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
5f58135f:	3b 7d e4             	cmp    0xffffffe4(%ebp),%edi
5f581362:	7e bc                	jle    5f581320 <_fill_DataFormat+0x40>
5f581364:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
5f581367:	8b 48 08             	mov    0x8(%eax),%ecx
5f58136a:	8b 5c 0e 04          	mov    0x4(%esi,%ecx,1),%ebx
5f58136e:	85 db                	test   %ebx,%ebx
5f581370:	78 3e                	js     5f5813b0 <_fill_DataFormat+0xd0>
5f581372:	8b 04 0e             	mov    (%esi,%ecx,1),%eax
5f581375:	83 f8 02             	cmp    $0x2,%eax
5f581378:	74 1e                	je     5f581398 <_fill_DataFormat+0xb8>
5f58137a:	7e ac                	jle    5f581328 <_fill_DataFormat+0x48>
5f58137c:	83 f8 04             	cmp    $0x4,%eax
5f58137f:	75 ae                	jne    5f58132f <_fill_DataFormat+0x4f>
5f581381:	8b 54 0e 08          	mov    0x8(%esi,%ecx,1),%edx
5f581385:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
5f581388:	8b 04 19             	mov    (%ecx,%ebx,1),%eax
5f58138b:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f58138e:	89 04 11             	mov    %eax,(%ecx,%edx,1)
5f581391:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
5f581394:	8b 38                	mov    (%eax),%edi
5f581396:	eb bd                	jmp    5f581355 <_fill_DataFormat+0x75>
5f581398:	8b 54 0e 08          	mov    0x8(%esi,%ecx,1),%edx
5f58139c:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
5f58139f:	66 8b 04 19          	mov    (%ecx,%ebx,1),%ax
5f5813a3:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f5813a6:	66 89 04 11          	mov    %ax,(%ecx,%edx,1)
5f5813aa:	eb a9                	jmp    5f581355 <_fill_DataFormat+0x75>
5f5813ac:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5813b0:	8b 04 0e             	mov    (%esi,%ecx,1),%eax
5f5813b3:	83 f8 02             	cmp    $0x2,%eax
5f5813b6:	74 4e                	je     5f581406 <_fill_DataFormat+0x126>
5f5813b8:	7f 39                	jg     5f5813f3 <_fill_DataFormat+0x113>
5f5813ba:	48                   	dec    %eax
5f5813bb:	75 98                	jne    5f581355 <_fill_DataFormat+0x75>
5f5813bd:	8b 54 0e 08          	mov    0x8(%esi,%ecx,1),%edx
5f5813c1:	8b 44 0e 0c          	mov    0xc(%esi,%ecx,1),%eax
5f5813c5:	eb 1c                	jmp    5f5813e3 <_fill_DataFormat+0x103>
5f5813c7:	8b 40 04             	mov    0x4(%eax),%eax
5f5813ca:	89 45 10             	mov    %eax,0x10(%ebp)
5f5813cd:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5813d0:	5b                   	pop    %ebx
5f5813d1:	5e                   	pop    %esi
5f5813d2:	5f                   	pop    %edi
5f5813d3:	5d                   	pop    %ebp
5f5813d4:	e9 87 61 00 00       	jmp    5f587560 <_memcpy>
5f5813d9:	8b 54 0e 08          	mov    0x8(%esi,%ecx,1),%edx
5f5813dd:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
5f5813e0:	8a 04 19             	mov    (%ecx,%ebx,1),%al
5f5813e3:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f5813e6:	88 04 11             	mov    %al,(%ecx,%edx,1)
5f5813e9:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
5f5813ec:	8b 38                	mov    (%eax),%edi
5f5813ee:	e9 62 ff ff ff       	jmp    5f581355 <_fill_DataFormat+0x75>
5f5813f3:	83 f8 04             	cmp    $0x4,%eax
5f5813f6:	0f 85 59 ff ff ff    	jne    5f581355 <_fill_DataFormat+0x75>
5f5813fc:	8b 54 0e 08          	mov    0x8(%esi,%ecx,1),%edx
5f581400:	8b 44 0e 0c          	mov    0xc(%esi,%ecx,1),%eax
5f581404:	eb 85                	jmp    5f58138b <_fill_DataFormat+0xab>
5f581406:	8b 54 0e 08          	mov    0x8(%esi,%ecx,1),%edx
5f58140a:	8b 44 0e 0c          	mov    0xc(%esi,%ecx,1),%eax
5f58140e:	eb 93                	jmp    5f5813a3 <_fill_DataFormat+0xc3>

5f581410 <_release_DataFormat>:

void release_DataFormat(DataFormat * format)
{
5f581410:	55                   	push   %ebp
5f581411:	89 e5                	mov    %esp,%ebp
5f581413:	83 ec 0c             	sub    $0xc,%esp
    TRACE("Deleting DataTransform : \n");

    HeapFree(GetProcessHeap(), 0, format->dt);
5f581416:	8b 45 08             	mov    0x8(%ebp),%eax
5f581419:	8b 40 08             	mov    0x8(%eax),%eax
5f58141c:	50                   	push   %eax
5f58141d:	6a 00                	push   $0x0
5f58141f:	50                   	push   %eax
5f581420:	e8 eb 52 00 00       	call   5f586710 <_GetProcessHeap@0>
5f581425:	89 04 24             	mov    %eax,(%esp)
5f581428:	e8 f3 52 00 00       	call   5f586720 <_HeapFree@12>
5f58142d:	c9                   	leave  
5f58142e:	c3                   	ret    
5f58142f:	90                   	nop    

5f581430 <_create_DataFormat>:
}

DataFormat *create_DataFormat(const DIDATAFORMAT *wine_format, LPCDIDATAFORMAT asked_format, int *offset) {
5f581430:	55                   	push   %ebp
5f581431:	89 e5                	mov    %esp,%ebp
5f581433:	57                   	push   %edi
5f581434:	56                   	push   %esi
5f581435:	53                   	push   %ebx
5f581436:	83 ec 50             	sub    $0x50,%esp
    DataFormat *ret;
    DataTransform *dt;
    unsigned int i, j;
    int same = 1;
5f581439:	c7 45 e0 01 00 00 00 	movl   $0x1,0xffffffe0(%ebp)
    int *done;
    int index = 0;
5f581440:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
    DWORD next = 0;
5f581447:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
    
    ret = (DataFormat *) HeapAlloc(GetProcessHeap(), 0, sizeof(DataFormat));
5f58144e:	6a 0c                	push   $0xc
5f581450:	6a 00                	push   $0x0
5f581452:	57                   	push   %edi
5f581453:	e8 b8 52 00 00       	call   5f586710 <_GetProcessHeap@0>
5f581458:	89 04 24             	mov    %eax,(%esp)
5f58145b:	e8 d0 52 00 00       	call   5f586730 <_HeapAlloc@12>
    
    done = (int *) HeapAlloc(GetProcessHeap(), 0, sizeof(int) * asked_format->dwNumObjs);
5f581460:	8b 55 0c             	mov    0xc(%ebp),%edx
5f581463:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f581466:	8b 42 10             	mov    0x10(%edx),%eax
5f581469:	c1 e0 02             	shl    $0x2,%eax
5f58146c:	50                   	push   %eax
5f58146d:	6a 00                	push   $0x0
5f58146f:	56                   	push   %esi
5f581470:	e8 9b 52 00 00       	call   5f586710 <_GetProcessHeap@0>
5f581475:	89 04 24             	mov    %eax,(%esp)
5f581478:	e8 b3 52 00 00       	call   5f586730 <_HeapAlloc@12>
    memset(done, 0, sizeof(int) * asked_format->dwNumObjs);
5f58147d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f581480:	8b 4b 10             	mov    0x10(%ebx),%ecx
5f581483:	89 c7                	mov    %eax,%edi
5f581485:	fc                   	cld    
5f581486:	c1 e1 02             	shl    $0x2,%ecx
5f581489:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)
5f58148c:	c1 e9 02             	shr    $0x2,%ecx
5f58148f:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
5f581492:	f3 ab                	repz stos %eax,%es:(%edi)
    
    dt = (DataTransform *) HeapAlloc(GetProcessHeap(), 0, asked_format->dwNumObjs * sizeof(DataTransform));
5f581494:	8b 43 10             	mov    0x10(%ebx),%eax
5f581497:	c1 e0 04             	shl    $0x4,%eax
5f58149a:	50                   	push   %eax
5f58149b:	6a 00                	push   $0x0
5f58149d:	53                   	push   %ebx
5f58149e:	e8 6d 52 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5814a3:	89 04 24             	mov    %eax,(%esp)
5f5814a6:	e8 85 52 00 00       	call   5f586730 <_HeapAlloc@12>
    
    TRACE("Creating DataTransform : \n");
    
    for (i = 0; i < wine_format->dwNumObjs; i++) {
5f5814ab:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
5f5814b2:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
5f5814b5:	8b 45 08             	mov    0x8(%ebp),%eax
5f5814b8:	59                   	pop    %ecx
5f5814b9:	8b 40 10             	mov    0x10(%eax),%eax
5f5814bc:	89 45 c4             	mov    %eax,0xffffffc4(%ebp)
5f5814bf:	83 f8 00             	cmp    $0x0,%eax
5f5814c2:	0f 86 12 02 00 00    	jbe    5f5816da <_create_DataFormat+0x2aa>
5f5814c8:	8b 55 0c             	mov    0xc(%ebp),%edx
5f5814cb:	8b 5a 10             	mov    0x10(%edx),%ebx
5f5814ce:	89 f6                	mov    %esi,%esi
	offset[i] = -1;
5f5814d0:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
5f5814d3:	8b 7d 10             	mov    0x10(%ebp),%edi
	
	for (j = 0; j < asked_format->dwNumObjs; j++) {
5f5814d6:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
5f5814dd:	83 fb 00             	cmp    $0x0,%ebx
5f5814e0:	c7 04 8f ff ff ff ff 	movl   $0xffffffff,(%edi,%ecx,4)
5f5814e7:	0f 86 9e 00 00 00    	jbe    5f58158b <_create_DataFormat+0x15b>
5f5814ed:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
5f5814f0:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
5f5814f3:	c1 e0 04             	shl    $0x4,%eax
5f5814f6:	c7 45 c0 00 00 00 00 	movl   $0x0,0xffffffc0(%ebp)
5f5814fd:	c1 e1 04             	shl    $0x4,%ecx
5f581500:	89 45 bc             	mov    %eax,0xffffffbc(%ebp)
5f581503:	01 d0                	add    %edx,%eax
5f581505:	89 4d cc             	mov    %ecx,0xffffffcc(%ebp)
5f581508:	89 45 b8             	mov    %eax,0xffffffb8(%ebp)
5f58150b:	90                   	nop    
5f58150c:	8d 74 26 00          	lea    0x0(%esi),%esi
	    if (done[j] == 1)
5f581510:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
5f581513:	8b 4d dc             	mov    0xffffffdc(%ebp),%ecx
5f581516:	83 3c 91 01          	cmpl   $0x1,(%ecx,%edx,4)
5f58151a:	74 5a                	je     5f581576 <_create_DataFormat+0x146>
		continue;
	    
	    if (/* Check if the application either requests any GUID and if not, it if matches
5f58151c:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f58151f:	8b 45 c0             	mov    0xffffffc0(%ebp),%eax
5f581522:	8b 7f 14             	mov    0x14(%edi),%edi
5f581525:	89 7d b4             	mov    %edi,0xffffffb4(%ebp)
5f581528:	8b 3c 38             	mov    (%eax,%edi,1),%edi
5f58152b:	85 ff                	test   %edi,%edi
5f58152d:	74 18                	je     5f581547 <_create_DataFormat+0x117>
5f58152f:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f581532:	8b 55 cc             	mov    0xffffffcc(%ebp),%edx
5f581535:	fc                   	cld    
5f581536:	8b 41 14             	mov    0x14(%ecx),%eax
5f581539:	8b 34 02             	mov    (%edx,%eax,1),%esi
5f58153c:	b8 10 00 00 00       	mov    $0x10,%eax
5f581541:	89 c1                	mov    %eax,%ecx
5f581543:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f581545:	75 2f                	jne    5f581576 <_create_DataFormat+0x146>
5f581547:	8b 45 b4             	mov    0xffffffb4(%ebp),%eax
5f58154a:	8b 7d c0             	mov    0xffffffc0(%ebp),%edi
5f58154d:	8b 54 07 08          	mov    0x8(%edi,%eax,1),%edx
5f581551:	89 d0                	mov    %edx,%eax
5f581553:	25 00 ff ff 00       	and    $0xffff00,%eax
5f581558:	3d 00 ff ff 00       	cmp    $0xffff00,%eax
5f58155d:	0f 84 a5 00 00 00    	je     5f581608 <_create_DataFormat+0x1d8>
5f581563:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f581566:	8b 7d cc             	mov    0xffffffcc(%ebp),%edi
5f581569:	8b 41 14             	mov    0x14(%ecx),%eax
5f58156c:	85 54 07 08          	test   %edx,0x8(%edi,%eax,1)
5f581570:	0f 85 92 00 00 00    	jne    5f581608 <_create_DataFormat+0x1d8>
5f581576:	8b 75 e4             	mov    0xffffffe4(%ebp),%esi
5f581579:	8b 4d c0             	mov    0xffffffc0(%ebp),%ecx
5f58157c:	46                   	inc    %esi
5f58157d:	83 c1 10             	add    $0x10,%ecx
5f581580:	89 75 e4             	mov    %esi,0xffffffe4(%ebp)
5f581583:	89 4d c0             	mov    %ecx,0xffffffc0(%ebp)
5f581586:	3b 5d e4             	cmp    0xffffffe4(%ebp),%ebx
5f581589:	77 85                	ja     5f581510 <_create_DataFormat+0xe0>
		 * the GUID of the Wine object.
		 */
		((asked_format->rgodf[j].pguid == NULL) ||
		 (IsEqualGUID(wine_format->rgodf[i].pguid, asked_format->rgodf[j].pguid)))
		&&
		(/* Then check if it accepts any instance id, and if not, if it matches Wine's
		  * instance id.
		  */
		 ((asked_format->rgodf[j].dwType & 0x00FFFF00) == DIDFT_ANYINSTANCE) ||
		 (wine_format->rgodf[i].dwType & asked_format->rgodf[j].dwType))) {
		
		done[j] = 1;
		
		TRACE("Matching : \n");
		TRACE("   - Asked (%d) :\n", j);
		TRACE("       * GUID: %s ('%s')\n",
		      debugstr_guid(asked_format->rgodf[j].pguid),
		      _dump_dinput_GUID(asked_format->rgodf[j].pguid));
		TRACE("       * Offset: %3ld\n", asked_format->rgodf[j].dwOfs);
		TRACE("       * dwType: %08lx\n", asked_format->rgodf[j].dwType);
		TRACE("         "); _dump_EnumObjects_flags(asked_format->rgodf[j].dwType); TRACE("\n");
		
		TRACE("   - Wine  (%d) :\n", j);
		TRACE("       * GUID: %s ('%s')\n",
		      debugstr_guid(wine_format->rgodf[j].pguid),
		      _dump_dinput_GUID(wine_format->rgodf[j].pguid));
		TRACE("       * Offset: %3ld\n", wine_format->rgodf[j].dwOfs);
		TRACE("       * dwType: %08lx\n", wine_format->rgodf[j].dwType);
		TRACE("         "); _dump_EnumObjects_flags(wine_format->rgodf[j].dwType); TRACE("\n");
		
		if (wine_format->rgodf[i].dwType & DIDFT_BUTTON)
		    dt[index].size = sizeof(BYTE);
		else
		    dt[index].size = sizeof(DWORD);
		dt[index].offset_in  = wine_format ->rgodf[i].dwOfs;
                if (asked_format->rgodf[j].dwOfs < next) {
                    WARN("bad format: dwOfs=%ld, changing to %ld\n", asked_format->rgodf[j].dwOfs, next);
		    dt[index].offset_out = next;
		    offset[i] = next;
                } else {
		    dt[index].offset_out = asked_format->rgodf[j].dwOfs;
                    offset[i] = asked_format->rgodf[j].dwOfs;
                }
		dt[index].value = 0;
                next = next + dt[index].size;
		
		if (wine_format->rgodf[i].dwOfs != dt[index].offset_out)
		    same = 0;
		
		index++;
		break;
	    }
	}
	
	if (j == asked_format->dwNumObjs)
	    same = 0;
5f58158b:	3b 5d e4             	cmp    0xffffffe4(%ebp),%ebx
5f58158e:	8b 55 e0             	mov    0xffffffe0(%ebp),%edx
5f581591:	0f 95 c0             	setne  %al
5f581594:	25 ff 00 00 00       	and    $0xff,%eax
5f581599:	f7 d8                	neg    %eax
5f58159b:	21 c2                	and    %eax,%edx
5f58159d:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
5f5815a0:	40                   	inc    %eax
5f5815a1:	89 55 e0             	mov    %edx,0xffffffe0(%ebp)
5f5815a4:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
5f5815a7:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
5f5815aa:	39 4d c4             	cmp    %ecx,0xffffffc4(%ebp)
5f5815ad:	0f 87 1d ff ff ff    	ja     5f5814d0 <_create_DataFormat+0xa0>
    }
    
    TRACE("Setting to default value :\n");
    for (j = 0; j < asked_format->dwNumObjs; j++) {
5f5815b3:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
5f5815ba:	83 fb 00             	cmp    $0x0,%ebx
5f5815bd:	0f 87 2d 01 00 00    	ja     5f5816f0 <_create_DataFormat+0x2c0>
	if (done[j] == 0) {
	    TRACE("   - Asked (%d) :\n", j);
	    TRACE("       * GUID: %s ('%s')\n",
		  debugstr_guid(asked_format->rgodf[j].pguid),
		  _dump_dinput_GUID(asked_format->rgodf[j].pguid));
	    TRACE("       * Offset: %3ld\n", asked_format->rgodf[j].dwOfs);
	    TRACE("       * dwType: %08lx\n", asked_format->rgodf[j].dwType);
	    TRACE("         "); _dump_EnumObjects_flags(asked_format->rgodf[j].dwType); TRACE("\n");
	    
	    if (asked_format->rgodf[j].dwType & DIDFT_BUTTON)
		dt[index].size = sizeof(BYTE);
	    else
		dt[index].size = sizeof(DWORD);
	    dt[index].offset_in  = -1;
	    dt[index].offset_out = asked_format->rgodf[j].dwOfs;
	    dt[index].value = 0;
	    index++;
	    
	    same = 0;
	}
    }
    
    ret->internal_format_size = wine_format->dwDataSize;
5f5815c3:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f5815c6:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5815c9:	8b 43 0c             	mov    0xc(%ebx),%eax
5f5815cc:	89 47 04             	mov    %eax,0x4(%edi)
    ret->size = index;
5f5815cf:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
5f5815d2:	89 07                	mov    %eax,(%edi)
    if (same) {
5f5815d4:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
5f5815d7:	85 c0                	test   %eax,%eax
5f5815d9:	0f 85 95 01 00 00    	jne    5f581774 <_create_DataFormat+0x344>
	ret->dt = NULL;
	HeapFree(GetProcessHeap(), 0, dt);
    } else {
	ret->dt = dt;
5f5815df:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
5f5815e2:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
5f5815e5:	89 4a 08             	mov    %ecx,0x8(%edx)
    }
    
    HeapFree(GetProcessHeap(), 0, done);
5f5815e8:	50                   	push   %eax
5f5815e9:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
5f5815ec:	50                   	push   %eax
5f5815ed:	6a 00                	push   $0x0
5f5815ef:	50                   	push   %eax
5f5815f0:	e8 1b 51 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5815f5:	89 04 24             	mov    %eax,(%esp)
5f5815f8:	e8 23 51 00 00       	call   5f586720 <_HeapFree@12>
    
    return ret;
}
5f5815fd:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f581600:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f581603:	5b                   	pop    %ebx
5f581604:	5e                   	pop    %esi
5f581605:	5f                   	pop    %edi
5f581606:	5d                   	pop    %ebp
5f581607:	c3                   	ret    
5f581608:	8b 4d dc             	mov    0xffffffdc(%ebp),%ecx
5f58160b:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
5f58160e:	c7 04 81 01 00 00 00 	movl   $0x1,(%ecx,%eax,4)
5f581615:	52                   	push   %edx
5f581616:	e8 c5 fb ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f58161b:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f58161e:	8b 7d c0             	mov    0xffffffc0(%ebp),%edi
5f581621:	8b 43 14             	mov    0x14(%ebx),%eax
5f581624:	8b 44 07 08          	mov    0x8(%edi,%eax,1),%eax
5f581628:	50                   	push   %eax
5f581629:	e8 b2 fb ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f58162e:	8b 53 14             	mov    0x14(%ebx),%edx
5f581631:	8b 4d cc             	mov    0xffffffcc(%ebp),%ecx
5f581634:	8b 5d b8             	mov    0xffffffb8(%ebp),%ebx
5f581637:	5e                   	pop    %esi
5f581638:	8b 44 11 08          	mov    0x8(%ecx,%edx,1),%eax
5f58163c:	5f                   	pop    %edi
5f58163d:	83 e0 0c             	and    $0xc,%eax
5f581640:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f581643:	83 f8 01             	cmp    $0x1,%eax
5f581646:	19 c0                	sbb    %eax,%eax
5f581648:	83 e0 03             	and    $0x3,%eax
5f58164b:	40                   	inc    %eax
5f58164c:	89 03                	mov    %eax,(%ebx)
5f58164e:	8b 44 11 04          	mov    0x4(%ecx,%edx,1),%eax
5f581652:	89 43 04             	mov    %eax,0x4(%ebx)
5f581655:	8b 4d c0             	mov    0xffffffc0(%ebp),%ecx
5f581658:	8b 47 14             	mov    0x14(%edi),%eax
5f58165b:	8b 44 01 04          	mov    0x4(%ecx,%eax,1),%eax
5f58165f:	3b 45 d4             	cmp    0xffffffd4(%ebp),%eax
5f581662:	73 61                	jae    5f5816c5 <_create_DataFormat+0x295>
5f581664:	8b 5d bc             	mov    0xffffffbc(%ebp),%ebx
5f581667:	8b 7d ec             	mov    0xffffffec(%ebp),%edi
5f58166a:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
5f58166d:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
5f581670:	89 44 3b 08          	mov    %eax,0x8(%ebx,%edi,1)
5f581674:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f581677:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
5f58167a:	8b 45 b8             	mov    0xffffffb8(%ebp),%eax
5f58167d:	8b 7d cc             	mov    0xffffffcc(%ebp),%edi
5f581680:	8b 5d d4             	mov    0xffffffd4(%ebp),%ebx
5f581683:	8b 08                	mov    (%eax),%ecx
5f581685:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
5f58168c:	8b 40 08             	mov    0x8(%eax),%eax
5f58168f:	01 cb                	add    %ecx,%ebx
5f581691:	39 44 17 04          	cmp    %eax,0x4(%edi,%edx,1)
5f581695:	8b 55 e0             	mov    0xffffffe0(%ebp),%edx
5f581698:	0f 94 c0             	sete   %al
5f58169b:	25 ff 00 00 00       	and    $0xff,%eax
5f5816a0:	8b 7d d8             	mov    0xffffffd8(%ebp),%edi
5f5816a3:	f7 d8                	neg    %eax
5f5816a5:	21 c2                	and    %eax,%edx
5f5816a7:	8b 45 0c             	mov    0xc(%ebp),%eax
5f5816aa:	89 55 e0             	mov    %edx,0xffffffe0(%ebp)
5f5816ad:	8b 55 08             	mov    0x8(%ebp),%edx
5f5816b0:	89 5d d4             	mov    %ebx,0xffffffd4(%ebp)
5f5816b3:	47                   	inc    %edi
5f5816b4:	8b 52 10             	mov    0x10(%edx),%edx
5f5816b7:	8b 58 10             	mov    0x10(%eax),%ebx
5f5816ba:	89 7d d8             	mov    %edi,0xffffffd8(%ebp)
5f5816bd:	89 55 c4             	mov    %edx,0xffffffc4(%ebp)
5f5816c0:	e9 c6 fe ff ff       	jmp    5f58158b <_create_DataFormat+0x15b>
5f5816c5:	8b 7d bc             	mov    0xffffffbc(%ebp),%edi
5f5816c8:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
5f5816cb:	8b 5d e8             	mov    0xffffffe8(%ebp),%ebx
5f5816ce:	89 44 0f 08          	mov    %eax,0x8(%edi,%ecx,1)
5f5816d2:	8b 7d 10             	mov    0x10(%ebp),%edi
5f5816d5:	89 04 9f             	mov    %eax,(%edi,%ebx,4)
5f5816d8:	eb a0                	jmp    5f58167a <_create_DataFormat+0x24a>
5f5816da:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f5816dd:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
5f5816e4:	8b 5f 10             	mov    0x10(%edi),%ebx
5f5816e7:	83 fb 00             	cmp    $0x0,%ebx
5f5816ea:	0f 86 d3 fe ff ff    	jbe    5f5815c3 <_create_DataFormat+0x193>
5f5816f0:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
5f5816f3:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
5f5816f6:	c1 e0 04             	shl    $0x4,%eax
5f5816f9:	31 ff                	xor    %edi,%edi
5f5816fb:	8d 34 10             	lea    (%eax,%edx,1),%esi
5f5816fe:	eb 13                	jmp    5f581713 <_create_DataFormat+0x2e3>
5f581700:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
5f581703:	83 c7 10             	add    $0x10,%edi
5f581706:	40                   	inc    %eax
5f581707:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
5f58170a:	3b 5d e4             	cmp    0xffffffe4(%ebp),%ebx
5f58170d:	0f 86 b0 fe ff ff    	jbe    5f5815c3 <_create_DataFormat+0x193>
5f581713:	8b 4d e4             	mov    0xffffffe4(%ebp),%ecx
5f581716:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
5f581719:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5f58171c:	85 c0                	test   %eax,%eax
5f58171e:	75 e0                	jne    5f581700 <_create_DataFormat+0x2d0>
5f581720:	8b 55 0c             	mov    0xc(%ebp),%edx
5f581723:	8b 42 14             	mov    0x14(%edx),%eax
5f581726:	8b 44 07 08          	mov    0x8(%edi,%eax,1),%eax
5f58172a:	50                   	push   %eax
5f58172b:	e8 b0 fa ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f581730:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f581733:	5b                   	pop    %ebx
5f581734:	c7 46 04 ff ff ff ff 	movl   $0xffffffff,0x4(%esi)
5f58173b:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
5f581742:	8b 51 14             	mov    0x14(%ecx),%edx
5f581745:	8b 59 10             	mov    0x10(%ecx),%ebx
5f581748:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
5f58174f:	8b 44 17 08          	mov    0x8(%edi,%edx,1),%eax
5f581753:	83 e0 0c             	and    $0xc,%eax
5f581756:	83 f8 01             	cmp    $0x1,%eax
5f581759:	19 c0                	sbb    %eax,%eax
5f58175b:	83 e0 03             	and    $0x3,%eax
5f58175e:	40                   	inc    %eax
5f58175f:	89 06                	mov    %eax,(%esi)
5f581761:	8b 44 17 04          	mov    0x4(%edi,%edx,1),%eax
5f581765:	89 46 08             	mov    %eax,0x8(%esi)
5f581768:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
5f58176b:	40                   	inc    %eax
5f58176c:	83 c6 10             	add    $0x10,%esi
5f58176f:	89 45 d8             	mov    %eax,0xffffffd8(%ebp)
5f581772:	eb 8c                	jmp    5f581700 <_create_DataFormat+0x2d0>
5f581774:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
5f58177b:	56                   	push   %esi
5f58177c:	8b 5d ec             	mov    0xffffffec(%ebp),%ebx
5f58177f:	53                   	push   %ebx
5f581780:	6a 00                	push   $0x0
5f581782:	51                   	push   %ecx
5f581783:	e8 88 4f 00 00       	call   5f586710 <_GetProcessHeap@0>
5f581788:	89 04 24             	mov    %eax,(%esp)
5f58178b:	e8 90 4f 00 00       	call   5f586720 <_HeapFree@12>
5f581790:	5a                   	pop    %edx
5f581791:	50                   	push   %eax
5f581792:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
5f581795:	50                   	push   %eax
5f581796:	6a 00                	push   $0x0
5f581798:	50                   	push   %eax
5f581799:	e8 72 4f 00 00       	call   5f586710 <_GetProcessHeap@0>
5f58179e:	89 04 24             	mov    %eax,(%esp)
5f5817a1:	e8 7a 4f 00 00       	call   5f586720 <_HeapFree@12>
5f5817a6:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f5817a9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5817ac:	5b                   	pop    %ebx
5f5817ad:	5e                   	pop    %esi
5f5817ae:	5f                   	pop    %edi
5f5817af:	5d                   	pop    %ebp
5f5817b0:	c3                   	ret    
5f5817b1:	eb 0d                	jmp    5f5817c0 <_DIEnumDevicesCallbackAtoW>
5f5817b3:	90                   	nop    
5f5817b4:	90                   	nop    
5f5817b5:	90                   	nop    
5f5817b6:	90                   	nop    
5f5817b7:	90                   	nop    
5f5817b8:	90                   	nop    
5f5817b9:	90                   	nop    
5f5817ba:	90                   	nop    
5f5817bb:	90                   	nop    
5f5817bc:	90                   	nop    
5f5817bd:	90                   	nop    
5f5817be:	90                   	nop    
5f5817bf:	90                   	nop    

5f5817c0 <_DIEnumDevicesCallbackAtoW>:

BOOL DIEnumDevicesCallbackAtoW(LPCDIDEVICEOBJECTINSTANCEA lpddi, LPVOID lpvRef) {
5f5817c0:	55                   	push   %ebp
5f5817c1:	89 e5                	mov    %esp,%ebp
5f5817c3:	57                   	push   %edi
5f5817c4:	56                   	push   %esi
5f5817c5:	53                   	push   %ebx
5f5817c6:	81 ec 50 02 00 00    	sub    $0x250,%esp
    DIDEVICEOBJECTINSTANCEW ddtmp;
    device_enumobjects_AtoWcb_data* data;

    data = (device_enumobjects_AtoWcb_data*) lpvRef;
    
    memset(&ddtmp, 0, sizeof(DIDEVICEINSTANCEW)); 
5f5817cc:	8d b5 a8 fd ff ff    	lea    0xfffffda8(%ebp),%esi
5f5817d2:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f5817d5:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f5817d8:	68 4c 04 00 00       	push   $0x44c
5f5817dd:	6a 00                	push   $0x0
5f5817df:	56                   	push   %esi
5f5817e0:	e8 6b 5d 00 00       	call   5f587550 <_memset>
    
    ddtmp.dwSize = sizeof(DIDEVICEINSTANCEW);
5f5817e5:	c7 85 a8 fd ff ff 4c 	movl   $0x44c,0xfffffda8(%ebp)
5f5817ec:	04 00 00 
    ddtmp.guidType     = lpddi->guidType;
5f5817ef:	8b 43 04             	mov    0x4(%ebx),%eax
5f5817f2:	89 85 ac fd ff ff    	mov    %eax,0xfffffdac(%ebp)
5f5817f8:	8b 43 08             	mov    0x8(%ebx),%eax
5f5817fb:	89 85 b0 fd ff ff    	mov    %eax,0xfffffdb0(%ebp)
5f581801:	8b 43 0c             	mov    0xc(%ebx),%eax
5f581804:	89 85 b4 fd ff ff    	mov    %eax,0xfffffdb4(%ebp)
5f58180a:	8b 43 10             	mov    0x10(%ebx),%eax
5f58180d:	89 85 b8 fd ff ff    	mov    %eax,0xfffffdb8(%ebp)
    ddtmp.dwOfs        = lpddi->dwOfs;
5f581813:	8b 43 14             	mov    0x14(%ebx),%eax
5f581816:	89 85 bc fd ff ff    	mov    %eax,0xfffffdbc(%ebp)
    ddtmp.dwType       = lpddi->dwType;
5f58181c:	8b 43 18             	mov    0x18(%ebx),%eax
5f58181f:	89 85 c0 fd ff ff    	mov    %eax,0xfffffdc0(%ebp)
    ddtmp.dwFlags      = lpddi->dwFlags;
5f581825:	8b 43 1c             	mov    0x1c(%ebx),%eax
5f581828:	89 85 c4 fd ff ff    	mov    %eax,0xfffffdc4(%ebp)
    MultiByteToWideChar(CP_ACP, 0, lpddi->tszName, -1, ddtmp.tszName, MAX_PATH);
5f58182e:	59                   	pop    %ecx
5f58182f:	58                   	pop    %eax
5f581830:	8d 85 c8 fd ff ff    	lea    0xfffffdc8(%ebp),%eax
5f581836:	68 04 01 00 00       	push   $0x104
5f58183b:	50                   	push   %eax
5f58183c:	8d 43 20             	lea    0x20(%ebx),%eax
5f58183f:	6a ff                	push   $0xffffffff
5f581841:	50                   	push   %eax
5f581842:	6a 00                	push   $0x0
5f581844:	6a 00                	push   $0x0
5f581846:	e8 f5 4e 00 00       	call   5f586740 <_MultiByteToWideChar@24>
    
    if (lpddi->dwSize == sizeof(DIDEVICEINSTANCEA)) {
5f58184b:	81 3b 44 02 00 00    	cmpl   $0x244,(%ebx)
5f581851:	58                   	pop    %eax
5f581852:	5a                   	pop    %edx
5f581853:	74 11                	je     5f581866 <_DIEnumDevicesCallbackAtoW+0xa6>
	/**
	 * if dwSize < sizeof(DIDEVICEINSTANCEA of DInput version >= 5)
	 *  force feedback and other newer datas aren't available
	 */
	ddtmp.dwFFMaxForce        = lpddi->dwFFMaxForce;
	ddtmp.dwFFForceResolution = lpddi->dwFFForceResolution;
	ddtmp.wCollectionNumber   = lpddi->wCollectionNumber;
	ddtmp.wDesignatorIndex    = lpddi->wDesignatorIndex;
	ddtmp.wUsagePage          = lpddi->wUsagePage;
	ddtmp.wUsage              = lpddi->wUsage;
	ddtmp.dwDimension         = lpddi->dwDimension;
	ddtmp.wExponent           = lpddi->wExponent;
	ddtmp.wReserved           = lpddi->wReserved;
    }
    return data->lpCallBack(&ddtmp, data->lpvRef);
5f581855:	50                   	push   %eax
5f581856:	50                   	push   %eax
5f581857:	8b 47 04             	mov    0x4(%edi),%eax
5f58185a:	50                   	push   %eax
5f58185b:	56                   	push   %esi
5f58185c:	ff 17                	call   *(%edi)
}
5f58185e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f581861:	5b                   	pop    %ebx
5f581862:	5e                   	pop    %esi
5f581863:	5f                   	pop    %edi
5f581864:	5d                   	pop    %ebp
5f581865:	c3                   	ret    
5f581866:	8b 83 24 01 00 00    	mov    0x124(%ebx),%eax
5f58186c:	89 45 d0             	mov    %eax,0xffffffd0(%ebp)
5f58186f:	8b 83 28 01 00 00    	mov    0x128(%ebx),%eax
5f581875:	89 45 d4             	mov    %eax,0xffffffd4(%ebp)
5f581878:	66 8b 83 2c 01 00 00 	mov    0x12c(%ebx),%ax
5f58187f:	66 89 45 d8          	mov    %ax,0xffffffd8(%ebp)
5f581883:	66 8b 83 2e 01 00 00 	mov    0x12e(%ebx),%ax
5f58188a:	66 89 45 da          	mov    %ax,0xffffffda(%ebp)
5f58188e:	66 8b 83 30 01 00 00 	mov    0x130(%ebx),%ax
5f581895:	66 89 45 dc          	mov    %ax,0xffffffdc(%ebp)
5f581899:	66 8b 83 32 01 00 00 	mov    0x132(%ebx),%ax
5f5818a0:	66 89 45 de          	mov    %ax,0xffffffde(%ebp)
5f5818a4:	8b 83 34 01 00 00    	mov    0x134(%ebx),%eax
5f5818aa:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
5f5818ad:	66 8b 83 38 01 00 00 	mov    0x138(%ebx),%ax
5f5818b4:	66 89 45 e4          	mov    %ax,0xffffffe4(%ebp)
5f5818b8:	66 8b 83 3a 01 00 00 	mov    0x13a(%ebx),%ax
5f5818bf:	66 89 45 e6          	mov    %ax,0xffffffe6(%ebp)
5f5818c3:	50                   	push   %eax
5f5818c4:	50                   	push   %eax
5f5818c5:	8b 47 04             	mov    0x4(%edi),%eax
5f5818c8:	50                   	push   %eax
5f5818c9:	56                   	push   %esi
5f5818ca:	ff 17                	call   *(%edi)
5f5818cc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5818cf:	5b                   	pop    %ebx
5f5818d0:	5e                   	pop    %esi
5f5818d1:	5f                   	pop    %edi
5f5818d2:	5d                   	pop    %ebp
5f5818d3:	c3                   	ret    
5f5818d4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f5818da:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f5818e0 <_IDirectInputDevice2AImpl_SetDataFormat@8>:

/******************************************************************************
 *	IDirectInputDeviceA
 */

HRESULT WINAPI IDirectInputDevice2AImpl_SetDataFormat(
	LPDIRECTINPUTDEVICE8A iface,LPCDIDATAFORMAT df
) {
5f5818e0:	55                   	push   %ebp
5f5818e1:	89 e5                	mov    %esp,%ebp
    IDirectInputDevice2AImpl *This = (IDirectInputDevice2AImpl *)iface;
    
    TRACE("(this=%p,%p)\n",This,df);
    
    _dump_DIDATAFORMAT(df);
5f5818e3:	8b 45 0c             	mov    0xc(%ebp),%eax
5f5818e6:	50                   	push   %eax
5f5818e7:	e8 a4 f9 ff ff       	call   5f581290 <__dump_DIDATAFORMAT>
    
    return DI_OK;
}
5f5818ec:	31 c0                	xor    %eax,%eax
5f5818ee:	c9                   	leave  
5f5818ef:	c2 08 00             	ret    $0x8
5f5818f2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5818f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581900 <_IDirectInputDevice2AImpl_SetCooperativeLevel@12>:

HRESULT WINAPI IDirectInputDevice2AImpl_SetCooperativeLevel(
	LPDIRECTINPUTDEVICE8A iface,HWND hwnd,DWORD dwflags
) {
5f581900:	55                   	push   %ebp
5f581901:	89 e5                	mov    %esp,%ebp
    IDirectInputDevice2AImpl *This = (IDirectInputDevice2AImpl *)iface;
    TRACE("(this=%p,0x%08lx,0x%08lx)\n",This,(DWORD)hwnd,dwflags);
    if (TRACE_ON(dinput)) {
	TRACE(" cooperative level : ");
	_dump_cooperativelevel_DI(dwflags);
5f581903:	8b 45 10             	mov    0x10(%ebp),%eax
5f581906:	50                   	push   %eax
5f581907:	e8 c4 f8 ff ff       	call   5f5811d0 <__dump_cooperativelevel_DI>
5f58190c:	58                   	pop    %eax
    }
    return DI_OK;
}
5f58190d:	31 c0                	xor    %eax,%eax
5f58190f:	c9                   	leave  
5f581910:	c2 0c 00             	ret    $0xc
5f581913:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f581919:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581920 <_IDirectInputDevice2AImpl_SetEventNotification@8>:

HRESULT WINAPI IDirectInputDevice2AImpl_SetEventNotification(
	LPDIRECTINPUTDEVICE8A iface,HANDLE hnd
) {
5f581920:	55                   	push   %ebp
5f581921:	89 e5                	mov    %esp,%ebp
5f581923:	52                   	push   %edx
5f581924:	52                   	push   %edx
    IDirectInputDevice2AImpl *This = (IDirectInputDevice2AImpl *)iface;
    FIXME("(this=%p,0x%08lx): stub\n",This,(DWORD)hnd);
5f581925:	68 40 a4 58 5f       	push   $0x5f58a440
5f58192a:	68 d7 01 00 00       	push   $0x1d7
5f58192f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581934:	68 77 a4 58 5f       	push   $0x5f58a477
5f581939:	e8 32 5c 00 00       	call   5f587570 <_DbgPrint>
5f58193e:	83 c4 0c             	add    $0xc,%esp
5f581941:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581944:	50                   	push   %eax
5f581945:	8b 45 08             	mov    0x8(%ebp),%eax
5f581948:	50                   	push   %eax
5f581949:	68 83 a4 58 5f       	push   $0x5f58a483
5f58194e:	e8 1d 5c 00 00       	call   5f587570 <_DbgPrint>
    return DI_OK;
}
5f581953:	31 c0                	xor    %eax,%eax
5f581955:	c9                   	leave  
5f581956:	c2 08 00             	ret    $0x8
5f581959:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f581960 <_IDirectInputDevice2AImpl_Release@4>:

ULONG WINAPI IDirectInputDevice2AImpl_Release(LPDIRECTINPUTDEVICE8A iface)
{
5f581960:	55                   	push   %ebp
5f581961:	89 e5                	mov    %esp,%ebp
5f581963:	56                   	push   %esi
5f581964:	53                   	push   %ebx
5f581965:	8b 75 08             	mov    0x8(%ebp),%esi
    IDirectInputDevice2AImpl *This = (IDirectInputDevice2AImpl *)iface;
    ULONG ref;
    ref = InterlockedDecrement(&(This->ref));
5f581968:	83 ec 0c             	sub    $0xc,%esp
5f58196b:	8d 46 04             	lea    0x4(%esi),%eax
5f58196e:	50                   	push   %eax
5f58196f:	e8 dc 4d 00 00       	call   5f586750 <_InterlockedDecrement@4>
    if (ref == 0)
5f581974:	83 c4 0c             	add    $0xc,%esp
5f581977:	89 c3                	mov    %eax,%ebx
5f581979:	85 c0                	test   %eax,%eax
5f58197b:	74 0b                	je     5f581988 <_IDirectInputDevice2AImpl_Release@4+0x28>
        HeapFree(GetProcessHeap(),0,This);
    return ref;
}
5f58197d:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f581980:	89 d8                	mov    %ebx,%eax
5f581982:	5b                   	pop    %ebx
5f581983:	5e                   	pop    %esi
5f581984:	5d                   	pop    %ebp
5f581985:	c2 04 00             	ret    $0x4
5f581988:	50                   	push   %eax
5f581989:	56                   	push   %esi
5f58198a:	6a 00                	push   $0x0
5f58198c:	56                   	push   %esi
5f58198d:	e8 7e 4d 00 00       	call   5f586710 <_GetProcessHeap@0>
5f581992:	89 04 24             	mov    %eax,(%esp)
5f581995:	e8 86 4d 00 00       	call   5f586720 <_HeapFree@12>
5f58199a:	89 d8                	mov    %ebx,%eax
5f58199c:	59                   	pop    %ecx
5f58199d:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5819a0:	5b                   	pop    %ebx
5f5819a1:	5e                   	pop    %esi
5f5819a2:	5d                   	pop    %ebp
5f5819a3:	c2 04 00             	ret    $0x4
5f5819a6:	8d 76 00             	lea    0x0(%esi),%esi
5f5819a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5819b0 <_IDirectInputDevice2AImpl_QueryInterface@12>:

HRESULT WINAPI IDirectInputDevice2AImpl_QueryInterface(
	LPDIRECTINPUTDEVICE8A iface,REFIID riid,LPVOID *ppobj
)
{
5f5819b0:	55                   	push   %ebp
    IDirectInputDevice2AImpl *This = (IDirectInputDevice2AImpl *)iface;
    
    TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
    if (IsEqualGUID(&IID_IUnknown,riid)) {
5f5819b1:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5819b6:	89 e5                	mov    %esp,%ebp
5f5819b8:	57                   	push   %edi
5f5819b9:	56                   	push   %esi
5f5819ba:	53                   	push   %ebx
5f5819bb:	83 ec 0c             	sub    $0xc,%esp
5f5819be:	be 40 75 58 5f       	mov    $0x5f587540,%esi
5f5819c3:	8b 45 0c             	mov    0xc(%ebp),%eax
5f5819c6:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f5819c9:	fc                   	cld    
5f5819ca:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f5819cd:	89 c7                	mov    %eax,%edi
5f5819cf:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5819d1:	74 43                	je     5f581a16 <_IDirectInputDevice2AImpl_QueryInterface@12+0x66>
	IDirectInputDevice2_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    if (IsEqualGUID(&IID_IDirectInputDeviceA,riid)) {
5f5819d3:	fc                   	cld    
5f5819d4:	be 90 bf 58 5f       	mov    $0x5f58bf90,%esi
5f5819d9:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5819de:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5819e1:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5819e3:	74 31                	je     5f581a16 <_IDirectInputDevice2AImpl_QueryInterface@12+0x66>
	IDirectInputDevice2_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    if (IsEqualGUID(&IID_IDirectInputDevice2A,riid)) {
5f5819e5:	fc                   	cld    
5f5819e6:	be f0 bf 58 5f       	mov    $0x5f58bff0,%esi
5f5819eb:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5819f0:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5819f3:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5819f5:	74 1f                	je     5f581a16 <_IDirectInputDevice2AImpl_QueryInterface@12+0x66>
	IDirectInputDevice2_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    if (IsEqualGUID(&IID_IDirectInputDevice7A,riid)) {
5f5819f7:	fc                   	cld    
5f5819f8:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5819fd:	be d0 bf 58 5f       	mov    $0x5f58bfd0,%esi
5f581a02:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f581a05:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f581a07:	0f 97 c2             	seta   %dl
5f581a0a:	0f 92 c0             	setb   %al
	IDirectInputDevice7_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    TRACE("Unsupported interface !\n");
    return E_FAIL;
5f581a0d:	b9 05 40 00 80       	mov    $0x80004005,%ecx
5f581a12:	38 c2                	cmp    %al,%dl
5f581a14:	75 10                	jne    5f581a26 <_IDirectInputDevice2AImpl_QueryInterface@12+0x76>
5f581a16:	83 ec 0c             	sub    $0xc,%esp
5f581a19:	8b 03                	mov    (%ebx),%eax
5f581a1b:	53                   	push   %ebx
5f581a1c:	ff 50 04             	call   *0x4(%eax)
5f581a1f:	8b 45 10             	mov    0x10(%ebp),%eax
5f581a22:	31 c9                	xor    %ecx,%ecx
5f581a24:	89 18                	mov    %ebx,(%eax)
}
5f581a26:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f581a29:	89 c8                	mov    %ecx,%eax
5f581a2b:	5b                   	pop    %ebx
5f581a2c:	5e                   	pop    %esi
5f581a2d:	5f                   	pop    %edi
5f581a2e:	5d                   	pop    %ebp
5f581a2f:	c2 0c 00             	ret    $0xc
5f581a32:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f581a39:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581a40 <_IDirectInputDevice2WImpl_QueryInterface@12>:

HRESULT WINAPI IDirectInputDevice2WImpl_QueryInterface(
	LPDIRECTINPUTDEVICE8W iface,REFIID riid,LPVOID *ppobj
)
{
5f581a40:	55                   	push   %ebp
    IDirectInputDevice2AImpl *This = (IDirectInputDevice2AImpl *)iface;
    
    TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
    if (IsEqualGUID(&IID_IUnknown,riid)) {
5f581a41:	b9 10 00 00 00       	mov    $0x10,%ecx
5f581a46:	89 e5                	mov    %esp,%ebp
5f581a48:	57                   	push   %edi
5f581a49:	56                   	push   %esi
5f581a4a:	53                   	push   %ebx
5f581a4b:	83 ec 0c             	sub    $0xc,%esp
5f581a4e:	be 40 75 58 5f       	mov    $0x5f587540,%esi
5f581a53:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581a56:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f581a59:	fc                   	cld    
5f581a5a:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f581a5d:	89 c7                	mov    %eax,%edi
5f581a5f:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f581a61:	74 43                	je     5f581aa6 <_IDirectInputDevice2WImpl_QueryInterface@12+0x66>
	IDirectInputDevice2_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    if (IsEqualGUID(&IID_IDirectInputDeviceW,riid)) {
5f581a63:	fc                   	cld    
5f581a64:	be 80 bf 58 5f       	mov    $0x5f58bf80,%esi
5f581a69:	b9 10 00 00 00       	mov    $0x10,%ecx
5f581a6e:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f581a71:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f581a73:	74 31                	je     5f581aa6 <_IDirectInputDevice2WImpl_QueryInterface@12+0x66>
	IDirectInputDevice2_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    if (IsEqualGUID(&IID_IDirectInputDevice2W,riid)) {
5f581a75:	fc                   	cld    
5f581a76:	be e0 bf 58 5f       	mov    $0x5f58bfe0,%esi
5f581a7b:	b9 10 00 00 00       	mov    $0x10,%ecx
5f581a80:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f581a83:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f581a85:	74 1f                	je     5f581aa6 <_IDirectInputDevice2WImpl_QueryInterface@12+0x66>
	IDirectInputDevice2_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    if (IsEqualGUID(&IID_IDirectInputDevice7W,riid)) {
5f581a87:	fc                   	cld    
5f581a88:	b9 10 00 00 00       	mov    $0x10,%ecx
5f581a8d:	be c0 bf 58 5f       	mov    $0x5f58bfc0,%esi
5f581a92:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f581a95:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f581a97:	0f 97 c2             	seta   %dl
5f581a9a:	0f 92 c0             	setb   %al
	IDirectInputDevice7_AddRef(iface);
	*ppobj = This;
	return DI_OK;
    }
    TRACE("Unsupported interface !\n");
    return E_FAIL;
5f581a9d:	b9 05 40 00 80       	mov    $0x80004005,%ecx
5f581aa2:	38 c2                	cmp    %al,%dl
5f581aa4:	75 10                	jne    5f581ab6 <_IDirectInputDevice2WImpl_QueryInterface@12+0x76>
5f581aa6:	83 ec 0c             	sub    $0xc,%esp
5f581aa9:	8b 03                	mov    (%ebx),%eax
5f581aab:	53                   	push   %ebx
5f581aac:	ff 50 04             	call   *0x4(%eax)
5f581aaf:	8b 45 10             	mov    0x10(%ebp),%eax
5f581ab2:	31 c9                	xor    %ecx,%ecx
5f581ab4:	89 18                	mov    %ebx,(%eax)
}
5f581ab6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f581ab9:	89 c8                	mov    %ecx,%eax
5f581abb:	5b                   	pop    %ebx
5f581abc:	5e                   	pop    %esi
5f581abd:	5f                   	pop    %edi
5f581abe:	5d                   	pop    %ebp
5f581abf:	c2 0c 00             	ret    $0xc
5f581ac2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f581ac9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581ad0 <_IDirectInputDevice2AImpl_AddRef@4>:

ULONG WINAPI IDirectInputDevice2AImpl_AddRef(
	LPDIRECTINPUTDEVICE8A iface)
{
5f581ad0:	55                   	push   %ebp
5f581ad1:	89 e5                	mov    %esp,%ebp
    IDirectInputDevice2AImpl *This = (IDirectInputDevice2AImpl *)iface;
    return InterlockedIncrement(&(This->ref));
5f581ad3:	8b 45 08             	mov    0x8(%ebp),%eax
5f581ad6:	83 c0 04             	add    $0x4,%eax
5f581ad9:	89 45 08             	mov    %eax,0x8(%ebp)
}
5f581adc:	c9                   	leave  
5f581add:	e9 7e 4c 00 00       	jmp    5f586760 <_InterlockedIncrement@4>
5f581ae2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f581ae9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581af0 <_IDirectInputDevice2AImpl_EnumObjects@16>:

HRESULT WINAPI IDirectInputDevice2AImpl_EnumObjects(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback,
	LPVOID lpvRef,
	DWORD dwFlags)
{
5f581af0:	55                   	push   %ebp
5f581af1:	89 e5                	mov    %esp,%ebp
5f581af3:	53                   	push   %ebx
5f581af4:	52                   	push   %edx
    FIXME("(this=%p,%p,%p,%08lx): stub!\n", iface, lpCallback, lpvRef, dwFlags);
5f581af5:	68 a0 a4 58 5f       	push   $0x5f58a4a0
5f581afa:	8b 5d 14             	mov    0x14(%ebp),%ebx
5f581afd:	68 30 02 00 00       	push   $0x230
5f581b02:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581b07:	68 77 a4 58 5f       	push   $0x5f58a477
5f581b0c:	e8 5f 5a 00 00       	call   5f587570 <_DbgPrint>
5f581b11:	8b 45 10             	mov    0x10(%ebp),%eax
5f581b14:	89 1c 24             	mov    %ebx,(%esp)
5f581b17:	50                   	push   %eax
5f581b18:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581b1b:	50                   	push   %eax
5f581b1c:	8b 45 08             	mov    0x8(%ebp),%eax
5f581b1f:	50                   	push   %eax
5f581b20:	68 c5 a4 58 5f       	push   $0x5f58a4c5
5f581b25:	e8 46 5a 00 00       	call   5f587570 <_DbgPrint>
    if (TRACE_ON(dinput)) {
	DPRINTF("  - flags = ");
	_dump_EnumObjects_flags(dwFlags);
5f581b2a:	83 c4 20             	add    $0x20,%esp
5f581b2d:	53                   	push   %ebx
5f581b2e:	e8 ad f6 ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f581b33:	58                   	pop    %eax
	DPRINTF("\n");
    }
    
    return DI_OK;
}
5f581b34:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f581b37:	31 c0                	xor    %eax,%eax
5f581b39:	c9                   	leave  
5f581b3a:	c2 10 00             	ret    $0x10
5f581b3d:	8d 76 00             	lea    0x0(%esi),%esi

5f581b40 <_IDirectInputDevice2WImpl_EnumObjects@16>:

HRESULT WINAPI IDirectInputDevice2WImpl_EnumObjects(
	LPDIRECTINPUTDEVICE8W iface,
	LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback,
	LPVOID lpvRef,
	DWORD dwFlags)
{
5f581b40:	55                   	push   %ebp
5f581b41:	89 e5                	mov    %esp,%ebp
5f581b43:	53                   	push   %ebx
5f581b44:	50                   	push   %eax
    FIXME("(this=%p,%p,%p,%08lx): stub!\n", iface, lpCallback, lpvRef, dwFlags);
5f581b45:	68 00 a5 58 5f       	push   $0x5f58a500
5f581b4a:	8b 5d 14             	mov    0x14(%ebp),%ebx
5f581b4d:	68 40 02 00 00       	push   $0x240
5f581b52:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581b57:	68 77 a4 58 5f       	push   $0x5f58a477
5f581b5c:	e8 0f 5a 00 00       	call   5f587570 <_DbgPrint>
5f581b61:	8b 45 10             	mov    0x10(%ebp),%eax
5f581b64:	89 1c 24             	mov    %ebx,(%esp)
5f581b67:	50                   	push   %eax
5f581b68:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581b6b:	50                   	push   %eax
5f581b6c:	8b 45 08             	mov    0x8(%ebp),%eax
5f581b6f:	50                   	push   %eax
5f581b70:	68 c5 a4 58 5f       	push   $0x5f58a4c5
5f581b75:	e8 f6 59 00 00       	call   5f587570 <_DbgPrint>
    if (TRACE_ON(dinput)) {
	DPRINTF("  - flags = ");
	_dump_EnumObjects_flags(dwFlags);
5f581b7a:	83 c4 20             	add    $0x20,%esp
5f581b7d:	53                   	push   %ebx
5f581b7e:	e8 5d f6 ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
	DPRINTF("\n");
    }
    
    return DI_OK;
}
5f581b83:	31 c0                	xor    %eax,%eax
5f581b85:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f581b88:	59                   	pop    %ecx
5f581b89:	c9                   	leave  
5f581b8a:	c2 10 00             	ret    $0x10
5f581b8d:	8d 76 00             	lea    0x0(%esi),%esi

5f581b90 <_IDirectInputDevice2AImpl_GetProperty@12>:

HRESULT WINAPI IDirectInputDevice2AImpl_GetProperty(
	LPDIRECTINPUTDEVICE8A iface,
	REFGUID rguid,
	LPDIPROPHEADER pdiph)
{
5f581b90:	55                   	push   %ebp
5f581b91:	89 e5                	mov    %esp,%ebp
5f581b93:	50                   	push   %eax
5f581b94:	50                   	push   %eax
    FIXME("(this=%p,%s,%p): stub!\n",
5f581b95:	68 40 a5 58 5f       	push   $0x5f58a540
5f581b9a:	68 4f 02 00 00       	push   $0x24f
5f581b9f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581ba4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581ba9:	e8 c2 59 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f581bae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f581bb1:	58                   	pop    %eax
5f581bb2:	51                   	push   %ecx
5f581bb3:	e8 b8 45 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f581bb8:	83 c4 10             	add    $0x10,%esp
5f581bbb:	8b 55 10             	mov    0x10(%ebp),%edx
5f581bbe:	52                   	push   %edx
5f581bbf:	50                   	push   %eax
5f581bc0:	8b 45 08             	mov    0x8(%ebp),%eax
5f581bc3:	50                   	push   %eax
5f581bc4:	68 65 a5 58 5f       	push   $0x5f58a565
5f581bc9:	e8 a2 59 00 00       	call   5f587570 <_DbgPrint>
	  iface, debugstr_guid(rguid), pdiph);
    
    if (TRACE_ON(dinput))
	_dump_DIPROPHEADER(pdiph);
5f581bce:	83 c4 10             	add    $0x10,%esp
    
    return DI_OK;
}
5f581bd1:	31 c0                	xor    %eax,%eax
5f581bd3:	c9                   	leave  
5f581bd4:	c2 0c 00             	ret    $0xc
5f581bd7:	89 f6                	mov    %esi,%esi
5f581bd9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581be0 <_IDirectInputDevice2AImpl_GetObjectInfo@16>:

HRESULT WINAPI IDirectInputDevice2AImpl_GetObjectInfo(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIDEVICEOBJECTINSTANCEA pdidoi,
	DWORD dwObj,
	DWORD dwHow)
{
5f581be0:	55                   	push   %ebp
5f581be1:	89 e5                	mov    %esp,%ebp
5f581be3:	51                   	push   %ecx
5f581be4:	51                   	push   %ecx
    FIXME("(this=%p,%p,%ld,0x%08lx): stub!\n",
5f581be5:	68 80 a5 58 5f       	push   $0x5f58a580
5f581bea:	68 5e 02 00 00       	push   $0x25e
5f581bef:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581bf4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581bf9:	e8 72 59 00 00       	call   5f587570 <_DbgPrint>
5f581bfe:	5a                   	pop    %edx
5f581bff:	8b 45 14             	mov    0x14(%ebp),%eax
5f581c02:	50                   	push   %eax
5f581c03:	8b 45 10             	mov    0x10(%ebp),%eax
5f581c06:	50                   	push   %eax
5f581c07:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581c0a:	50                   	push   %eax
5f581c0b:	8b 45 08             	mov    0x8(%ebp),%eax
5f581c0e:	50                   	push   %eax
5f581c0f:	68 a8 a5 58 5f       	push   $0x5f58a5a8
5f581c14:	e8 57 59 00 00       	call   5f587570 <_DbgPrint>
	  iface, pdidoi, dwObj, dwHow);
    
    return DI_OK;
}
5f581c19:	31 c0                	xor    %eax,%eax
5f581c1b:	c9                   	leave  
5f581c1c:	c2 10 00             	ret    $0x10
5f581c1f:	90                   	nop    

5f581c20 <_IDirectInputDevice2WImpl_GetObjectInfo@16>:

HRESULT WINAPI IDirectInputDevice2WImpl_GetObjectInfo(
	LPDIRECTINPUTDEVICE8W iface,
	LPDIDEVICEOBJECTINSTANCEW pdidoi,
	DWORD dwObj,
	DWORD dwHow)
{
5f581c20:	55                   	push   %ebp
5f581c21:	89 e5                	mov    %esp,%ebp
5f581c23:	50                   	push   %eax
5f581c24:	50                   	push   %eax
    FIXME("(this=%p,%p,%ld,0x%08lx): stub!\n",
5f581c25:	68 e0 a5 58 5f       	push   $0x5f58a5e0
5f581c2a:	68 6a 02 00 00       	push   $0x26a
5f581c2f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581c34:	68 77 a4 58 5f       	push   $0x5f58a477
5f581c39:	e8 32 59 00 00       	call   5f587570 <_DbgPrint>
5f581c3e:	58                   	pop    %eax
5f581c3f:	8b 45 14             	mov    0x14(%ebp),%eax
5f581c42:	50                   	push   %eax
5f581c43:	8b 45 10             	mov    0x10(%ebp),%eax
5f581c46:	50                   	push   %eax
5f581c47:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581c4a:	50                   	push   %eax
5f581c4b:	8b 45 08             	mov    0x8(%ebp),%eax
5f581c4e:	50                   	push   %eax
5f581c4f:	68 a8 a5 58 5f       	push   $0x5f58a5a8
5f581c54:	e8 17 59 00 00       	call   5f587570 <_DbgPrint>
	  iface, pdidoi, dwObj, dwHow);
    
    return DI_OK;
}
5f581c59:	31 c0                	xor    %eax,%eax
5f581c5b:	c9                   	leave  
5f581c5c:	c2 10 00             	ret    $0x10
5f581c5f:	90                   	nop    

5f581c60 <_IDirectInputDevice2AImpl_GetDeviceInfo@8>:

HRESULT WINAPI IDirectInputDevice2AImpl_GetDeviceInfo(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIDEVICEINSTANCEA pdidi)
{
5f581c60:	55                   	push   %ebp
5f581c61:	89 e5                	mov    %esp,%ebp
5f581c63:	50                   	push   %eax
5f581c64:	50                   	push   %eax
    FIXME("(this=%p,%p): stub!\n",
5f581c65:	68 20 a6 58 5f       	push   $0x5f58a620
5f581c6a:	68 74 02 00 00       	push   $0x274
5f581c6f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581c74:	68 77 a4 58 5f       	push   $0x5f58a477
5f581c79:	e8 f2 58 00 00       	call   5f587570 <_DbgPrint>
5f581c7e:	83 c4 0c             	add    $0xc,%esp
5f581c81:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f581c84:	8b 55 08             	mov    0x8(%ebp),%edx
5f581c87:	51                   	push   %ecx
5f581c88:	52                   	push   %edx
5f581c89:	68 47 a6 58 5f       	push   $0x5f58a647
5f581c8e:	e8 dd 58 00 00       	call   5f587570 <_DbgPrint>
	  iface, pdidi);
    
    return DI_OK;
}
5f581c93:	31 c0                	xor    %eax,%eax
5f581c95:	c9                   	leave  
5f581c96:	c2 08 00             	ret    $0x8
5f581c99:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f581ca0 <_IDirectInputDevice2WImpl_GetDeviceInfo@8>:

HRESULT WINAPI IDirectInputDevice2WImpl_GetDeviceInfo(
	LPDIRECTINPUTDEVICE8W iface,
	LPDIDEVICEINSTANCEW pdidi)
{
5f581ca0:	55                   	push   %ebp
5f581ca1:	89 e5                	mov    %esp,%ebp
5f581ca3:	50                   	push   %eax
5f581ca4:	50                   	push   %eax
    FIXME("(this=%p,%p): stub!\n",
5f581ca5:	68 60 a6 58 5f       	push   $0x5f58a660
5f581caa:	68 7e 02 00 00       	push   $0x27e
5f581caf:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581cb4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581cb9:	e8 b2 58 00 00       	call   5f587570 <_DbgPrint>
5f581cbe:	83 c4 0c             	add    $0xc,%esp
5f581cc1:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581cc4:	50                   	push   %eax
5f581cc5:	8b 45 08             	mov    0x8(%ebp),%eax
5f581cc8:	50                   	push   %eax
5f581cc9:	68 47 a6 58 5f       	push   $0x5f58a647
5f581cce:	e8 9d 58 00 00       	call   5f587570 <_DbgPrint>
	  iface, pdidi);
    
    return DI_OK;
}
5f581cd3:	31 c0                	xor    %eax,%eax
5f581cd5:	c9                   	leave  
5f581cd6:	c2 08 00             	ret    $0x8
5f581cd9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f581ce0 <_IDirectInputDevice2AImpl_RunControlPanel@12>:

HRESULT WINAPI IDirectInputDevice2AImpl_RunControlPanel(
	LPDIRECTINPUTDEVICE8A iface,
	HWND hwndOwner,
	DWORD dwFlags)
{
5f581ce0:	55                   	push   %ebp
5f581ce1:	89 e5                	mov    %esp,%ebp
5f581ce3:	51                   	push   %ecx
5f581ce4:	51                   	push   %ecx
    FIXME("(this=%p,%p,0x%08lx): stub!\n",
5f581ce5:	68 a0 a6 58 5f       	push   $0x5f58a6a0
5f581cea:	68 89 02 00 00       	push   $0x289
5f581cef:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581cf4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581cf9:	e8 72 58 00 00       	call   5f587570 <_DbgPrint>
5f581cfe:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581d01:	8b 55 10             	mov    0x10(%ebp),%edx
5f581d04:	52                   	push   %edx
5f581d05:	50                   	push   %eax
5f581d06:	8b 45 08             	mov    0x8(%ebp),%eax
5f581d09:	50                   	push   %eax
5f581d0a:	68 c9 a6 58 5f       	push   $0x5f58a6c9
5f581d0f:	e8 5c 58 00 00       	call   5f587570 <_DbgPrint>
	  iface, hwndOwner, dwFlags);

    return DI_OK;
}
5f581d14:	31 c0                	xor    %eax,%eax
5f581d16:	c9                   	leave  
5f581d17:	c2 0c 00             	ret    $0xc
5f581d1a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f581d20 <_IDirectInputDevice2AImpl_Initialize@16>:

HRESULT WINAPI IDirectInputDevice2AImpl_Initialize(
	LPDIRECTINPUTDEVICE8A iface,
	HINSTANCE hinst,
	DWORD dwVersion,
	REFGUID rguid)
{
5f581d20:	55                   	push   %ebp
5f581d21:	89 e5                	mov    %esp,%ebp
5f581d23:	50                   	push   %eax
5f581d24:	50                   	push   %eax
    FIXME("(this=%p,%p,%ld,%s): stub!\n",
5f581d25:	68 00 a7 58 5f       	push   $0x5f58a700
5f581d2a:	68 95 02 00 00       	push   $0x295
5f581d2f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581d34:	68 77 a4 58 5f       	push   $0x5f58a477
5f581d39:	e8 32 58 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f581d3e:	58                   	pop    %eax
5f581d3f:	8b 45 14             	mov    0x14(%ebp),%eax
5f581d42:	50                   	push   %eax
5f581d43:	e8 28 44 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f581d48:	89 04 24             	mov    %eax,(%esp)
5f581d4b:	8b 45 10             	mov    0x10(%ebp),%eax
5f581d4e:	50                   	push   %eax
5f581d4f:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581d52:	50                   	push   %eax
5f581d53:	8b 45 08             	mov    0x8(%ebp),%eax
5f581d56:	50                   	push   %eax
5f581d57:	68 24 a7 58 5f       	push   $0x5f58a724
5f581d5c:	e8 0f 58 00 00       	call   5f587570 <_DbgPrint>
	  iface, hinst, dwVersion, debugstr_guid(rguid));
    return DI_OK;
}
5f581d61:	31 c0                	xor    %eax,%eax
5f581d63:	c9                   	leave  
5f581d64:	c2 10 00             	ret    $0x10
5f581d67:	89 f6                	mov    %esi,%esi
5f581d69:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f581d70 <_IDirectInputDevice2AImpl_CreateEffect@20>:

/******************************************************************************
 *	IDirectInputDevice2A
 */

HRESULT WINAPI IDirectInputDevice2AImpl_CreateEffect(
	LPDIRECTINPUTDEVICE8A iface,
	REFGUID rguid,
	LPCDIEFFECT lpeff,
	LPDIRECTINPUTEFFECT *ppdef,
	LPUNKNOWN pUnkOuter)
{
5f581d70:	55                   	push   %ebp
5f581d71:	89 e5                	mov    %esp,%ebp
5f581d73:	50                   	push   %eax
5f581d74:	50                   	push   %eax
    FIXME("(this=%p,%s,%p,%p,%p): stub!\n",
5f581d75:	68 40 a7 58 5f       	push   $0x5f58a740
5f581d7a:	68 a5 02 00 00       	push   $0x2a5
5f581d7f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581d84:	68 77 a4 58 5f       	push   $0x5f58a477
5f581d89:	e8 e2 57 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f581d8e:	58                   	pop    %eax
5f581d8f:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581d92:	50                   	push   %eax
5f581d93:	e8 d8 43 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f581d98:	5a                   	pop    %edx
5f581d99:	8b 55 14             	mov    0x14(%ebp),%edx
5f581d9c:	59                   	pop    %ecx
5f581d9d:	8b 4d 18             	mov    0x18(%ebp),%ecx
5f581da0:	51                   	push   %ecx
5f581da1:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f581da4:	52                   	push   %edx
5f581da5:	8b 55 08             	mov    0x8(%ebp),%edx
5f581da8:	51                   	push   %ecx
5f581da9:	50                   	push   %eax
5f581daa:	52                   	push   %edx
5f581dab:	68 66 a7 58 5f       	push   $0x5f58a766
5f581db0:	e8 bb 57 00 00       	call   5f587570 <_DbgPrint>
	  iface, debugstr_guid(rguid), lpeff, ppdef, pUnkOuter);
    return DI_OK;
}
5f581db5:	31 c0                	xor    %eax,%eax
5f581db7:	c9                   	leave  
5f581db8:	c2 14 00             	ret    $0x14
5f581dbb:	90                   	nop    
5f581dbc:	8d 74 26 00          	lea    0x0(%esi),%esi

5f581dc0 <_IDirectInputDevice2AImpl_EnumEffects@16>:

HRESULT WINAPI IDirectInputDevice2AImpl_EnumEffects(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIENUMEFFECTSCALLBACKA lpCallback,
	LPVOID lpvRef,
	DWORD dwFlags)
{
5f581dc0:	55                   	push   %ebp
5f581dc1:	89 e5                	mov    %esp,%ebp
5f581dc3:	50                   	push   %eax
5f581dc4:	50                   	push   %eax
    FIXME("(this=%p,%p,%p,0x%08lx): stub!\n",
5f581dc5:	68 a0 a7 58 5f       	push   $0x5f58a7a0
5f581dca:	68 b0 02 00 00       	push   $0x2b0
5f581dcf:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581dd4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581dd9:	e8 92 57 00 00       	call   5f587570 <_DbgPrint>
5f581dde:	59                   	pop    %ecx
5f581ddf:	8b 45 10             	mov    0x10(%ebp),%eax
5f581de2:	8b 55 14             	mov    0x14(%ebp),%edx
5f581de5:	52                   	push   %edx
5f581de6:	50                   	push   %eax
5f581de7:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581dea:	50                   	push   %eax
5f581deb:	8b 45 08             	mov    0x8(%ebp),%eax
5f581dee:	50                   	push   %eax
5f581def:	68 c8 a7 58 5f       	push   $0x5f58a7c8
5f581df4:	e8 77 57 00 00       	call   5f587570 <_DbgPrint>
	  iface, lpCallback, lpvRef, dwFlags);
    
    return DI_OK;
}
5f581df9:	31 c0                	xor    %eax,%eax
5f581dfb:	c9                   	leave  
5f581dfc:	c2 10 00             	ret    $0x10
5f581dff:	90                   	nop    

5f581e00 <_IDirectInputDevice2WImpl_EnumEffects@16>:

HRESULT WINAPI IDirectInputDevice2WImpl_EnumEffects(
	LPDIRECTINPUTDEVICE8W iface,
	LPDIENUMEFFECTSCALLBACKW lpCallback,
	LPVOID lpvRef,
	DWORD dwFlags)
{
5f581e00:	55                   	push   %ebp
5f581e01:	89 e5                	mov    %esp,%ebp
5f581e03:	52                   	push   %edx
5f581e04:	52                   	push   %edx
    FIXME("(this=%p,%p,%p,0x%08lx): stub!\n",
5f581e05:	68 00 a8 58 5f       	push   $0x5f58a800
5f581e0a:	68 bc 02 00 00       	push   $0x2bc
5f581e0f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581e14:	68 77 a4 58 5f       	push   $0x5f58a477
5f581e19:	e8 52 57 00 00       	call   5f587570 <_DbgPrint>
5f581e1e:	58                   	pop    %eax
5f581e1f:	8b 45 14             	mov    0x14(%ebp),%eax
5f581e22:	50                   	push   %eax
5f581e23:	8b 45 10             	mov    0x10(%ebp),%eax
5f581e26:	50                   	push   %eax
5f581e27:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581e2a:	50                   	push   %eax
5f581e2b:	8b 45 08             	mov    0x8(%ebp),%eax
5f581e2e:	50                   	push   %eax
5f581e2f:	68 c8 a7 58 5f       	push   $0x5f58a7c8
5f581e34:	e8 37 57 00 00       	call   5f587570 <_DbgPrint>
	  iface, lpCallback, lpvRef, dwFlags);
    
    return DI_OK;
}
5f581e39:	31 c0                	xor    %eax,%eax
5f581e3b:	c9                   	leave  
5f581e3c:	c2 10 00             	ret    $0x10
5f581e3f:	90                   	nop    

5f581e40 <_IDirectInputDevice2AImpl_GetEffectInfo@12>:

HRESULT WINAPI IDirectInputDevice2AImpl_GetEffectInfo(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIEFFECTINFOA lpdei,
	REFGUID rguid)
{
5f581e40:	55                   	push   %ebp
5f581e41:	89 e5                	mov    %esp,%ebp
5f581e43:	50                   	push   %eax
5f581e44:	50                   	push   %eax
    FIXME("(this=%p,%p,%s): stub!\n",
5f581e45:	68 40 a8 58 5f       	push   $0x5f58a840
5f581e4a:	68 c7 02 00 00       	push   $0x2c7
5f581e4f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581e54:	68 77 a4 58 5f       	push   $0x5f58a477
5f581e59:	e8 12 57 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f581e5e:	58                   	pop    %eax
5f581e5f:	8b 45 10             	mov    0x10(%ebp),%eax
5f581e62:	50                   	push   %eax
5f581e63:	e8 08 43 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f581e68:	83 c4 10             	add    $0x10,%esp
5f581e6b:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f581e6e:	50                   	push   %eax
5f581e6f:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581e72:	50                   	push   %eax
5f581e73:	51                   	push   %ecx
5f581e74:	68 67 a8 58 5f       	push   $0x5f58a867
5f581e79:	e8 f2 56 00 00       	call   5f587570 <_DbgPrint>
	  iface, lpdei, debugstr_guid(rguid));
    return DI_OK;
}
5f581e7e:	31 c0                	xor    %eax,%eax
5f581e80:	c9                   	leave  
5f581e81:	c2 0c 00             	ret    $0xc
5f581e84:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f581e8a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f581e90 <_IDirectInputDevice2WImpl_GetEffectInfo@12>:

HRESULT WINAPI IDirectInputDevice2WImpl_GetEffectInfo(
	LPDIRECTINPUTDEVICE8W iface,
	LPDIEFFECTINFOW lpdei,
	REFGUID rguid)
{
5f581e90:	55                   	push   %ebp
5f581e91:	89 e5                	mov    %esp,%ebp
5f581e93:	50                   	push   %eax
5f581e94:	50                   	push   %eax
    FIXME("(this=%p,%p,%s): stub!\n",
5f581e95:	68 80 a8 58 5f       	push   $0x5f58a880
5f581e9a:	68 d1 02 00 00       	push   $0x2d1
5f581e9f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581ea4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581ea9:	e8 c2 56 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f581eae:	59                   	pop    %ecx
5f581eaf:	8b 55 10             	mov    0x10(%ebp),%edx
5f581eb2:	52                   	push   %edx
5f581eb3:	e8 b8 42 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f581eb8:	83 c4 10             	add    $0x10,%esp
5f581ebb:	50                   	push   %eax
5f581ebc:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581ebf:	50                   	push   %eax
5f581ec0:	8b 45 08             	mov    0x8(%ebp),%eax
5f581ec3:	50                   	push   %eax
5f581ec4:	68 67 a8 58 5f       	push   $0x5f58a867
5f581ec9:	e8 a2 56 00 00       	call   5f587570 <_DbgPrint>
	  iface, lpdei, debugstr_guid(rguid));
    return DI_OK;
}
5f581ece:	31 c0                	xor    %eax,%eax
5f581ed0:	c9                   	leave  
5f581ed1:	c2 0c 00             	ret    $0xc
5f581ed4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f581eda:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f581ee0 <_IDirectInputDevice2AImpl_GetForceFeedbackState@8>:

HRESULT WINAPI IDirectInputDevice2AImpl_GetForceFeedbackState(
	LPDIRECTINPUTDEVICE8A iface,
	LPDWORD pdwOut)
{
5f581ee0:	55                   	push   %ebp
5f581ee1:	89 e5                	mov    %esp,%ebp
5f581ee3:	50                   	push   %eax
5f581ee4:	50                   	push   %eax
    FIXME("(this=%p,%p): stub!\n",
5f581ee5:	68 c0 a8 58 5f       	push   $0x5f58a8c0
5f581eea:	68 da 02 00 00       	push   $0x2da
5f581eef:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581ef4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581ef9:	e8 72 56 00 00       	call   5f587570 <_DbgPrint>
5f581efe:	83 c4 0c             	add    $0xc,%esp
5f581f01:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581f04:	50                   	push   %eax
5f581f05:	8b 45 08             	mov    0x8(%ebp),%eax
5f581f08:	50                   	push   %eax
5f581f09:	68 47 a6 58 5f       	push   $0x5f58a647
5f581f0e:	e8 5d 56 00 00       	call   5f587570 <_DbgPrint>
	  iface, pdwOut);
    return DI_OK;
}
5f581f13:	31 c0                	xor    %eax,%eax
5f581f15:	c9                   	leave  
5f581f16:	c2 08 00             	ret    $0x8
5f581f19:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f581f20 <_IDirectInputDevice2AImpl_SendForceFeedbackCommand@8>:

HRESULT WINAPI IDirectInputDevice2AImpl_SendForceFeedbackCommand(
	LPDIRECTINPUTDEVICE8A iface,
	DWORD dwFlags)
{
5f581f20:	55                   	push   %ebp
5f581f21:	89 e5                	mov    %esp,%ebp
5f581f23:	52                   	push   %edx
5f581f24:	52                   	push   %edx
    FIXME("(this=%p,0x%08lx): stub!\n",
5f581f25:	68 00 a9 58 5f       	push   $0x5f58a900
5f581f2a:	68 e3 02 00 00       	push   $0x2e3
5f581f2f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581f34:	68 77 a4 58 5f       	push   $0x5f58a477
5f581f39:	e8 32 56 00 00       	call   5f587570 <_DbgPrint>
5f581f3e:	83 c4 0c             	add    $0xc,%esp
5f581f41:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581f44:	50                   	push   %eax
5f581f45:	8b 45 08             	mov    0x8(%ebp),%eax
5f581f48:	50                   	push   %eax
5f581f49:	68 32 a9 58 5f       	push   $0x5f58a932
5f581f4e:	e8 1d 56 00 00       	call   5f587570 <_DbgPrint>
	  iface, dwFlags);
    return DI_OK;
}
5f581f53:	31 c0                	xor    %eax,%eax
5f581f55:	c9                   	leave  
5f581f56:	c2 08 00             	ret    $0x8
5f581f59:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f581f60 <_IDirectInputDevice2AImpl_EnumCreatedEffectObjects@16>:

HRESULT WINAPI IDirectInputDevice2AImpl_EnumCreatedEffectObjects(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback,
	LPVOID lpvRef,
	DWORD dwFlags)
{
5f581f60:	55                   	push   %ebp
5f581f61:	89 e5                	mov    %esp,%ebp
5f581f63:	56                   	push   %esi
5f581f64:	53                   	push   %ebx
    FIXME("(this=%p,%p,%p,0x%08lx): stub!\n",
5f581f65:	68 60 a9 58 5f       	push   $0x5f58a960
5f581f6a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f581f6d:	68 ee 02 00 00       	push   $0x2ee
5f581f72:	8b 75 10             	mov    0x10(%ebp),%esi
5f581f75:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581f7a:	68 77 a4 58 5f       	push   $0x5f58a477
5f581f7f:	e8 ec 55 00 00       	call   5f587570 <_DbgPrint>
5f581f84:	58                   	pop    %eax
5f581f85:	8b 45 14             	mov    0x14(%ebp),%eax
5f581f88:	50                   	push   %eax
5f581f89:	8b 45 08             	mov    0x8(%ebp),%eax
5f581f8c:	56                   	push   %esi
5f581f8d:	53                   	push   %ebx
5f581f8e:	50                   	push   %eax
5f581f8f:	68 c8 a7 58 5f       	push   $0x5f58a7c8
5f581f94:	e8 d7 55 00 00       	call   5f587570 <_DbgPrint>
	  iface, lpCallback, lpvRef, dwFlags);
    if (lpCallback)
5f581f99:	83 c4 20             	add    $0x20,%esp
5f581f9c:	85 db                	test   %ebx,%ebx
5f581f9e:	74 09                	je     5f581fa9 <_IDirectInputDevice2AImpl_EnumCreatedEffectObjects@16+0x49>
	lpCallback(NULL, lpvRef);
5f581fa0:	50                   	push   %eax
5f581fa1:	50                   	push   %eax
5f581fa2:	56                   	push   %esi
5f581fa3:	6a 00                	push   $0x0
5f581fa5:	ff d3                	call   *%ebx
5f581fa7:	59                   	pop    %ecx
5f581fa8:	5b                   	pop    %ebx
    return DI_OK;
}
5f581fa9:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f581fac:	31 c0                	xor    %eax,%eax
5f581fae:	5b                   	pop    %ebx
5f581faf:	5e                   	pop    %esi
5f581fb0:	5d                   	pop    %ebp
5f581fb1:	c2 10 00             	ret    $0x10
5f581fb4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f581fba:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f581fc0 <_IDirectInputDevice2AImpl_Escape@8>:

HRESULT WINAPI IDirectInputDevice2AImpl_Escape(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIEFFESCAPE lpDIEEsc)
{
5f581fc0:	55                   	push   %ebp
5f581fc1:	89 e5                	mov    %esp,%ebp
5f581fc3:	52                   	push   %edx
5f581fc4:	52                   	push   %edx
    FIXME("(this=%p,%p): stub!\n",
5f581fc5:	68 a0 a9 58 5f       	push   $0x5f58a9a0
5f581fca:	68 f9 02 00 00       	push   $0x2f9
5f581fcf:	68 6e a4 58 5f       	push   $0x5f58a46e
5f581fd4:	68 77 a4 58 5f       	push   $0x5f58a477
5f581fd9:	e8 92 55 00 00       	call   5f587570 <_DbgPrint>
5f581fde:	83 c4 0c             	add    $0xc,%esp
5f581fe1:	8b 45 0c             	mov    0xc(%ebp),%eax
5f581fe4:	50                   	push   %eax
5f581fe5:	8b 45 08             	mov    0x8(%ebp),%eax
5f581fe8:	50                   	push   %eax
5f581fe9:	68 47 a6 58 5f       	push   $0x5f58a647
5f581fee:	e8 7d 55 00 00       	call   5f587570 <_DbgPrint>
	  iface, lpDIEEsc);
    return DI_OK;
}
5f581ff3:	31 c0                	xor    %eax,%eax
5f581ff5:	c9                   	leave  
5f581ff6:	c2 08 00             	ret    $0x8
5f581ff9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f582000 <_IDirectInputDevice2AImpl_Poll@4>:

HRESULT WINAPI IDirectInputDevice2AImpl_Poll(
	LPDIRECTINPUTDEVICE8A iface)
{
5f582000:	55                   	push   %ebp
    /* Because wine devices do not need to be polled, just return DI_NOEFFECT */
    return DI_NOEFFECT;
}
5f582001:	b8 01 00 00 00       	mov    $0x1,%eax
5f582006:	89 e5                	mov    %esp,%ebp
5f582008:	5d                   	pop    %ebp
5f582009:	c2 04 00             	ret    $0x4
5f58200c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f582010 <_IDirectInputDevice2AImpl_SendDeviceData@20>:

HRESULT WINAPI IDirectInputDevice2AImpl_SendDeviceData(
	LPDIRECTINPUTDEVICE8A iface,
	DWORD cbObjectData,
	LPCDIDEVICEOBJECTDATA rgdod,
	LPDWORD pdwInOut,
	DWORD dwFlags)
{
5f582010:	55                   	push   %ebp
5f582011:	89 e5                	mov    %esp,%ebp
5f582013:	51                   	push   %ecx
5f582014:	51                   	push   %ecx
    FIXME("(this=%p,0x%08lx,%p,%p,0x%08lx): stub!\n",
5f582015:	68 c0 a9 58 5f       	push   $0x5f58a9c0
5f58201a:	68 0c 03 00 00       	push   $0x30c
5f58201f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f582024:	68 77 a4 58 5f       	push   $0x5f58a477
5f582029:	e8 42 55 00 00       	call   5f587570 <_DbgPrint>
5f58202e:	58                   	pop    %eax
5f58202f:	8b 45 18             	mov    0x18(%ebp),%eax
5f582032:	5a                   	pop    %edx
5f582033:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f582036:	50                   	push   %eax
5f582037:	8b 45 14             	mov    0x14(%ebp),%eax
5f58203a:	50                   	push   %eax
5f58203b:	8b 45 10             	mov    0x10(%ebp),%eax
5f58203e:	50                   	push   %eax
5f58203f:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582042:	50                   	push   %eax
5f582043:	51                   	push   %ecx
5f582044:	68 e8 a9 58 5f       	push   $0x5f58a9e8
5f582049:	e8 22 55 00 00       	call   5f587570 <_DbgPrint>
	  iface, cbObjectData, rgdod, pdwInOut, dwFlags);
    
    return DI_OK;
}
5f58204e:	31 c0                	xor    %eax,%eax
5f582050:	c9                   	leave  
5f582051:	c2 14 00             	ret    $0x14
5f582054:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58205a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f582060 <_IDirectInputDevice7AImpl_EnumEffectsInFile@20>:

HRESULT WINAPI IDirectInputDevice7AImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8A iface,
							  LPCSTR lpszFileName,
							  LPDIENUMEFFECTSINFILECALLBACK pec,
							  LPVOID pvRef,
							  DWORD dwFlags)
{
5f582060:	55                   	push   %ebp
5f582061:	89 e5                	mov    %esp,%ebp
5f582063:	51                   	push   %ecx
5f582064:	51                   	push   %ecx
    FIXME("(%p)->(%s,%p,%p,%08lx): stub !\n", iface, lpszFileName, pec, pvRef, dwFlags);
5f582065:	68 20 aa 58 5f       	push   $0x5f58aa20
5f58206a:	68 18 03 00 00       	push   $0x318
5f58206f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f582074:	68 77 a4 58 5f       	push   $0x5f58a477
5f582079:	e8 f2 54 00 00       	call   5f587570 <_DbgPrint>
5f58207e:	58                   	pop    %eax
5f58207f:	8b 45 18             	mov    0x18(%ebp),%eax
5f582082:	5a                   	pop    %edx
5f582083:	50                   	push   %eax
5f582084:	8b 45 14             	mov    0x14(%ebp),%eax
5f582087:	50                   	push   %eax
5f582088:	8b 45 10             	mov    0x10(%ebp),%eax
5f58208b:	50                   	push   %eax
5f58208c:	8b 45 0c             	mov    0xc(%ebp),%eax
5f58208f:	50                   	push   %eax
5f582090:	8b 45 08             	mov    0x8(%ebp),%eax
5f582093:	50                   	push   %eax
5f582094:	68 4c aa 58 5f       	push   $0x5f58aa4c
5f582099:	e8 d2 54 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f58209e:	31 c0                	xor    %eax,%eax
5f5820a0:	c9                   	leave  
5f5820a1:	c2 14 00             	ret    $0x14
5f5820a4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f5820aa:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f5820b0 <_IDirectInputDevice7WImpl_EnumEffectsInFile@20>:

HRESULT WINAPI IDirectInputDevice7WImpl_EnumEffectsInFile(LPDIRECTINPUTDEVICE8W iface,
							  LPCWSTR lpszFileName,
							  LPDIENUMEFFECTSINFILECALLBACK pec,
							  LPVOID pvRef,
							  DWORD dwFlags)
{
5f5820b0:	55                   	push   %ebp
5f5820b1:	89 e5                	mov    %esp,%ebp
5f5820b3:	51                   	push   %ecx
5f5820b4:	51                   	push   %ecx
    FIXME("(%p)->(%s,%p,%p,%08lx): stub !\n", iface, debugstr_w(lpszFileName), pec, pvRef, dwFlags);
5f5820b5:	68 80 aa 58 5f       	push   $0x5f58aa80
5f5820ba:	68 23 03 00 00       	push   $0x323
5f5820bf:	68 6e a4 58 5f       	push   $0x5f58a46e
5f5820c4:	68 77 a4 58 5f       	push   $0x5f58a477
5f5820c9:	e8 a2 54 00 00       	call   5f587570 <_DbgPrint>
inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
inline static const char *debugstr_a( const char *s )  { return wine_dbgstr_an( s, 80 ); }
inline static const char *debugstr_w( const wchar_t *s ) { return wine_dbgstr_wn( s, 80 ); }
5f5820ce:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f5820d1:	58                   	pop    %eax
5f5820d2:	5a                   	pop    %edx
5f5820d3:	6a 50                	push   $0x50
5f5820d5:	51                   	push   %ecx
5f5820d6:	e8 45 41 00 00       	call   5f586220 <_wine_dbgstr_wn>
5f5820db:	59                   	pop    %ecx
5f5820dc:	5a                   	pop    %edx
5f5820dd:	8b 55 18             	mov    0x18(%ebp),%edx
5f5820e0:	52                   	push   %edx
5f5820e1:	8b 4d 14             	mov    0x14(%ebp),%ecx
5f5820e4:	8b 55 10             	mov    0x10(%ebp),%edx
5f5820e7:	51                   	push   %ecx
5f5820e8:	52                   	push   %edx
5f5820e9:	50                   	push   %eax
5f5820ea:	8b 45 08             	mov    0x8(%ebp),%eax
5f5820ed:	50                   	push   %eax
5f5820ee:	68 4c aa 58 5f       	push   $0x5f58aa4c
5f5820f3:	e8 78 54 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f5820f8:	31 c0                	xor    %eax,%eax
5f5820fa:	c9                   	leave  
5f5820fb:	c2 14 00             	ret    $0x14
5f5820fe:	89 f6                	mov    %esi,%esi

5f582100 <_IDirectInputDevice7AImpl_WriteEffectToFile@20>:

HRESULT WINAPI IDirectInputDevice7AImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8A iface,
							  LPCSTR lpszFileName,
							  DWORD dwEntries,
							  LPDIFILEEFFECT rgDiFileEft,
							  DWORD dwFlags)
{
5f582100:	55                   	push   %ebp
5f582101:	89 e5                	mov    %esp,%ebp
5f582103:	51                   	push   %ecx
5f582104:	51                   	push   %ecx
    FIXME("(%p)->(%s,%08lx,%p,%08lx): stub !\n", iface, lpszFileName, dwEntries, rgDiFileEft, dwFlags);
5f582105:	68 c0 aa 58 5f       	push   $0x5f58aac0
5f58210a:	68 2e 03 00 00       	push   $0x32e
5f58210f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f582114:	68 77 a4 58 5f       	push   $0x5f58a477
5f582119:	e8 52 54 00 00       	call   5f587570 <_DbgPrint>
5f58211e:	58                   	pop    %eax
5f58211f:	8b 45 18             	mov    0x18(%ebp),%eax
5f582122:	5a                   	pop    %edx
5f582123:	50                   	push   %eax
5f582124:	8b 45 14             	mov    0x14(%ebp),%eax
5f582127:	50                   	push   %eax
5f582128:	8b 45 10             	mov    0x10(%ebp),%eax
5f58212b:	50                   	push   %eax
5f58212c:	8b 45 0c             	mov    0xc(%ebp),%eax
5f58212f:	50                   	push   %eax
5f582130:	8b 45 08             	mov    0x8(%ebp),%eax
5f582133:	50                   	push   %eax
5f582134:	68 ec aa 58 5f       	push   $0x5f58aaec
5f582139:	e8 32 54 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f58213e:	31 c0                	xor    %eax,%eax
5f582140:	c9                   	leave  
5f582141:	c2 14 00             	ret    $0x14
5f582144:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58214a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f582150 <_IDirectInputDevice7WImpl_WriteEffectToFile@20>:

HRESULT WINAPI IDirectInputDevice7WImpl_WriteEffectToFile(LPDIRECTINPUTDEVICE8W iface,
							  LPCWSTR lpszFileName,
							  DWORD dwEntries,
							  LPDIFILEEFFECT rgDiFileEft,
							  DWORD dwFlags)
{
5f582150:	55                   	push   %ebp
5f582151:	89 e5                	mov    %esp,%ebp
5f582153:	51                   	push   %ecx
5f582154:	51                   	push   %ecx
    FIXME("(%p)->(%s,%08lx,%p,%08lx): stub !\n", iface, debugstr_w(lpszFileName), dwEntries, rgDiFileEft, dwFlags);
5f582155:	68 20 ab 58 5f       	push   $0x5f58ab20
5f58215a:	68 39 03 00 00       	push   $0x339
5f58215f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f582164:	68 77 a4 58 5f       	push   $0x5f58a477
5f582169:	e8 02 54 00 00       	call   5f587570 <_DbgPrint>
inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
inline static const char *debugstr_a( const char *s )  { return wine_dbgstr_an( s, 80 ); }
inline static const char *debugstr_w( const wchar_t *s ) { return wine_dbgstr_wn( s, 80 ); }
5f58216e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f582171:	58                   	pop    %eax
5f582172:	5a                   	pop    %edx
5f582173:	6a 50                	push   $0x50
5f582175:	51                   	push   %ecx
5f582176:	e8 a5 40 00 00       	call   5f586220 <_wine_dbgstr_wn>
5f58217b:	59                   	pop    %ecx
5f58217c:	5a                   	pop    %edx
5f58217d:	8b 55 18             	mov    0x18(%ebp),%edx
5f582180:	52                   	push   %edx
5f582181:	8b 4d 14             	mov    0x14(%ebp),%ecx
5f582184:	8b 55 10             	mov    0x10(%ebp),%edx
5f582187:	51                   	push   %ecx
5f582188:	52                   	push   %edx
5f582189:	50                   	push   %eax
5f58218a:	8b 45 08             	mov    0x8(%ebp),%eax
5f58218d:	50                   	push   %eax
5f58218e:	68 ec aa 58 5f       	push   $0x5f58aaec
5f582193:	e8 d8 53 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f582198:	31 c0                	xor    %eax,%eax
5f58219a:	c9                   	leave  
5f58219b:	c2 14 00             	ret    $0x14
5f58219e:	89 f6                	mov    %esi,%esi

5f5821a0 <_IDirectInputDevice8AImpl_BuildActionMap@16>:

HRESULT WINAPI IDirectInputDevice8AImpl_BuildActionMap(LPDIRECTINPUTDEVICE8A iface,
						       LPDIACTIONFORMATA lpdiaf,
						       LPCSTR lpszUserName,
						       DWORD dwFlags)
{
5f5821a0:	55                   	push   %ebp
5f5821a1:	89 e5                	mov    %esp,%ebp
5f5821a3:	50                   	push   %eax
5f5821a4:	50                   	push   %eax
    FIXME("(%p)->(%p,%s,%08lx): stub !\n", iface, lpdiaf, lpszUserName, dwFlags);
5f5821a5:	68 60 ab 58 5f       	push   $0x5f58ab60
5f5821aa:	68 43 03 00 00       	push   $0x343
5f5821af:	68 6e a4 58 5f       	push   $0x5f58a46e
5f5821b4:	68 77 a4 58 5f       	push   $0x5f58a477
5f5821b9:	e8 b2 53 00 00       	call   5f587570 <_DbgPrint>
5f5821be:	58                   	pop    %eax
5f5821bf:	8b 45 14             	mov    0x14(%ebp),%eax
5f5821c2:	50                   	push   %eax
5f5821c3:	8b 45 10             	mov    0x10(%ebp),%eax
5f5821c6:	50                   	push   %eax
5f5821c7:	8b 45 0c             	mov    0xc(%ebp),%eax
5f5821ca:	50                   	push   %eax
5f5821cb:	8b 45 08             	mov    0x8(%ebp),%eax
5f5821ce:	50                   	push   %eax
5f5821cf:	68 88 ab 58 5f       	push   $0x5f58ab88
5f5821d4:	e8 97 53 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f5821d9:	31 c0                	xor    %eax,%eax
5f5821db:	c9                   	leave  
5f5821dc:	c2 10 00             	ret    $0x10
5f5821df:	90                   	nop    

5f5821e0 <_IDirectInputDevice8WImpl_BuildActionMap@16>:

HRESULT WINAPI IDirectInputDevice8WImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
						       LPDIACTIONFORMATW lpdiaf,
						       LPCWSTR lpszUserName,
						       DWORD dwFlags)
{
5f5821e0:	55                   	push   %ebp
5f5821e1:	89 e5                	mov    %esp,%ebp
5f5821e3:	51                   	push   %ecx
5f5821e4:	51                   	push   %ecx
    FIXME("(%p)->(%p,%s,%08lx): stub !\n", iface, lpdiaf, debugstr_w(lpszUserName), dwFlags);
5f5821e5:	68 c0 ab 58 5f       	push   $0x5f58abc0
5f5821ea:	68 4d 03 00 00       	push   $0x34d
5f5821ef:	68 6e a4 58 5f       	push   $0x5f58a46e
5f5821f4:	68 77 a4 58 5f       	push   $0x5f58a477
5f5821f9:	e8 72 53 00 00       	call   5f587570 <_DbgPrint>
inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
inline static const char *debugstr_a( const char *s )  { return wine_dbgstr_an( s, 80 ); }
inline static const char *debugstr_w( const wchar_t *s ) { return wine_dbgstr_wn( s, 80 ); }
5f5821fe:	58                   	pop    %eax
5f5821ff:	8b 45 10             	mov    0x10(%ebp),%eax
5f582202:	5a                   	pop    %edx
5f582203:	6a 50                	push   $0x50
5f582205:	50                   	push   %eax
5f582206:	e8 15 40 00 00       	call   5f586220 <_wine_dbgstr_wn>
5f58220b:	59                   	pop    %ecx
5f58220c:	8b 55 14             	mov    0x14(%ebp),%edx
5f58220f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f582212:	52                   	push   %edx
5f582213:	8b 55 08             	mov    0x8(%ebp),%edx
5f582216:	50                   	push   %eax
5f582217:	51                   	push   %ecx
5f582218:	52                   	push   %edx
5f582219:	68 88 ab 58 5f       	push   $0x5f58ab88
5f58221e:	e8 4d 53 00 00       	call   5f587570 <_DbgPrint>
  
    return DI_OK;
}
5f582223:	31 c0                	xor    %eax,%eax
5f582225:	c9                   	leave  
5f582226:	c2 10 00             	ret    $0x10
5f582229:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f582230 <_IDirectInputDevice8AImpl_SetActionMap@16>:

HRESULT WINAPI IDirectInputDevice8AImpl_SetActionMap(LPDIRECTINPUTDEVICE8A iface,
						     LPDIACTIONFORMATA lpdiaf,
						     LPCSTR lpszUserName,
						     DWORD dwFlags)
{
5f582230:	55                   	push   %ebp
5f582231:	89 e5                	mov    %esp,%ebp
5f582233:	50                   	push   %eax
5f582234:	50                   	push   %eax
    FIXME("(%p)->(%p,%s,%08lx): stub !\n", iface, lpdiaf, lpszUserName, dwFlags);
5f582235:	68 00 ac 58 5f       	push   $0x5f58ac00
5f58223a:	68 57 03 00 00       	push   $0x357
5f58223f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f582244:	68 77 a4 58 5f       	push   $0x5f58a477
5f582249:	e8 22 53 00 00       	call   5f587570 <_DbgPrint>
5f58224e:	58                   	pop    %eax
5f58224f:	8b 45 14             	mov    0x14(%ebp),%eax
5f582252:	50                   	push   %eax
5f582253:	8b 45 10             	mov    0x10(%ebp),%eax
5f582256:	50                   	push   %eax
5f582257:	8b 45 0c             	mov    0xc(%ebp),%eax
5f58225a:	50                   	push   %eax
5f58225b:	8b 45 08             	mov    0x8(%ebp),%eax
5f58225e:	50                   	push   %eax
5f58225f:	68 88 ab 58 5f       	push   $0x5f58ab88
5f582264:	e8 07 53 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f582269:	31 c0                	xor    %eax,%eax
5f58226b:	c9                   	leave  
5f58226c:	c2 10 00             	ret    $0x10
5f58226f:	90                   	nop    

5f582270 <_IDirectInputDevice8WImpl_SetActionMap@16>:

HRESULT WINAPI IDirectInputDevice8WImpl_SetActionMap(LPDIRECTINPUTDEVICE8W iface,
						     LPDIACTIONFORMATW lpdiaf,
						     LPCWSTR lpszUserName,
						     DWORD dwFlags)
{
5f582270:	55                   	push   %ebp
5f582271:	89 e5                	mov    %esp,%ebp
5f582273:	51                   	push   %ecx
5f582274:	51                   	push   %ecx
    FIXME("(%p)->(%p,%s,%08lx): stub !\n", iface, lpdiaf, debugstr_w(lpszUserName), dwFlags);
5f582275:	68 40 ac 58 5f       	push   $0x5f58ac40
5f58227a:	68 61 03 00 00       	push   $0x361
5f58227f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f582284:	68 77 a4 58 5f       	push   $0x5f58a477
5f582289:	e8 e2 52 00 00       	call   5f587570 <_DbgPrint>
inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
inline static const char *debugstr_a( const char *s )  { return wine_dbgstr_an( s, 80 ); }
inline static const char *debugstr_w( const wchar_t *s ) { return wine_dbgstr_wn( s, 80 ); }
5f58228e:	58                   	pop    %eax
5f58228f:	8b 45 10             	mov    0x10(%ebp),%eax
5f582292:	5a                   	pop    %edx
5f582293:	6a 50                	push   $0x50
5f582295:	50                   	push   %eax
5f582296:	e8 85 3f 00 00       	call   5f586220 <_wine_dbgstr_wn>
5f58229b:	59                   	pop    %ecx
5f58229c:	8b 55 14             	mov    0x14(%ebp),%edx
5f58229f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f5822a2:	52                   	push   %edx
5f5822a3:	8b 55 08             	mov    0x8(%ebp),%edx
5f5822a6:	50                   	push   %eax
5f5822a7:	51                   	push   %ecx
5f5822a8:	52                   	push   %edx
5f5822a9:	68 88 ab 58 5f       	push   $0x5f58ab88
5f5822ae:	e8 bd 52 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f5822b3:	31 c0                	xor    %eax,%eax
5f5822b5:	c9                   	leave  
5f5822b6:	c2 10 00             	ret    $0x10
5f5822b9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f5822c0 <_IDirectInputDevice8AImpl_GetImageInfo@8>:

HRESULT WINAPI IDirectInputDevice8AImpl_GetImageInfo(LPDIRECTINPUTDEVICE8A iface,
						     LPDIDEVICEIMAGEINFOHEADERA lpdiDevImageInfoHeader)
{
5f5822c0:	55                   	push   %ebp
5f5822c1:	89 e5                	mov    %esp,%ebp
5f5822c3:	50                   	push   %eax
5f5822c4:	50                   	push   %eax
    FIXME("(%p)->(%p): stub !\n", iface, lpdiDevImageInfoHeader);
5f5822c5:	68 80 ac 58 5f       	push   $0x5f58ac80
5f5822ca:	68 69 03 00 00       	push   $0x369
5f5822cf:	68 6e a4 58 5f       	push   $0x5f58a46e
5f5822d4:	68 77 a4 58 5f       	push   $0x5f58a477
5f5822d9:	e8 92 52 00 00       	call   5f587570 <_DbgPrint>
5f5822de:	83 c4 0c             	add    $0xc,%esp
5f5822e1:	8b 45 0c             	mov    0xc(%ebp),%eax
5f5822e4:	50                   	push   %eax
5f5822e5:	8b 45 08             	mov    0x8(%ebp),%eax
5f5822e8:	50                   	push   %eax
5f5822e9:	68 a6 ac 58 5f       	push   $0x5f58aca6
5f5822ee:	e8 7d 52 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f5822f3:	31 c0                	xor    %eax,%eax
5f5822f5:	c9                   	leave  
5f5822f6:	c2 08 00             	ret    $0x8
5f5822f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f582300 <_IDirectInputDevice8WImpl_GetImageInfo@8>:

HRESULT WINAPI IDirectInputDevice8WImpl_GetImageInfo(LPDIRECTINPUTDEVICE8W iface,
						     LPDIDEVICEIMAGEINFOHEADERW lpdiDevImageInfoHeader)
{
5f582300:	55                   	push   %ebp
5f582301:	89 e5                	mov    %esp,%ebp
5f582303:	50                   	push   %eax
5f582304:	50                   	push   %eax
    FIXME("(%p)->(%p): stub !\n", iface, lpdiDevImageInfoHeader);
5f582305:	68 c0 ac 58 5f       	push   $0x5f58acc0
5f58230a:	68 71 03 00 00       	push   $0x371
5f58230f:	68 6e a4 58 5f       	push   $0x5f58a46e
5f582314:	68 77 a4 58 5f       	push   $0x5f58a477
5f582319:	e8 52 52 00 00       	call   5f587570 <_DbgPrint>
5f58231e:	83 c4 0c             	add    $0xc,%esp
5f582321:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582324:	50                   	push   %eax
5f582325:	8b 45 08             	mov    0x8(%ebp),%eax
5f582328:	50                   	push   %eax
5f582329:	68 a6 ac 58 5f       	push   $0x5f58aca6
5f58232e:	e8 3d 52 00 00       	call   5f587570 <_DbgPrint>
    
    return DI_OK;
}
5f582333:	31 c0                	xor    %eax,%eax
5f582335:	c9                   	leave  
5f582336:	c2 08 00             	ret    $0x8
5f582339:	90                   	nop    
5f58233a:	90                   	nop    
5f58233b:	90                   	nop    
5f58233c:	90                   	nop    
5f58233d:	90                   	nop    
5f58233e:	90                   	nop    
5f58233f:	90                   	nop    

5f582340 <_DllMain@12>:

HINSTANCE DINPUT_instance = NULL;

BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserv)
{
5f582340:	55                   	push   %ebp
5f582341:	89 e5                	mov    %esp,%ebp
5f582343:	53                   	push   %ebx
5f582344:	50                   	push   %eax
5f582345:	8b 5d 08             	mov    0x8(%ebp),%ebx
    switch(reason)
5f582348:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
5f58234c:	74 12                	je     5f582360 <_DllMain@12+0x20>
    {
      case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(inst);
        DINPUT_instance = inst;
        break;
      case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
5f58234e:	b8 01 00 00 00       	mov    $0x1,%eax
5f582353:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f582356:	c9                   	leave  
5f582357:	c2 0c 00             	ret    $0xc
5f58235a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f582360:	83 ec 0c             	sub    $0xc,%esp
5f582363:	53                   	push   %ebx
5f582364:	e8 07 44 00 00       	call   5f586770 <_DisableThreadLibraryCalls@4>
5f582369:	89 1d 20 e0 58 5f    	mov    %ebx,0x5f58e020
5f58236f:	83 c4 0c             	add    $0xc,%esp
5f582372:	b8 01 00 00 00       	mov    $0x1,%eax
5f582377:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f58237a:	c9                   	leave  
5f58237b:	c2 0c 00             	ret    $0xc
5f58237e:	89 f6                	mov    %esi,%esi

5f582380 <_dinput_register_device>:

/* register a direct draw driver. We better not use malloc for we are in
 * the ELF startup initialisation at this point.
 */
void dinput_register_device(dinput_device *device) {
5f582380:	55                   	push   %ebp
    int	i;

    /* insert according to priority */
    for (i=0;i<nrof_dinput_devices;i++) {
5f582381:	31 d2                	xor    %edx,%edx
5f582383:	89 e5                	mov    %esp,%ebp
5f582385:	57                   	push   %edi
5f582386:	56                   	push   %esi
5f582387:	53                   	push   %ebx
5f582388:	83 ec 0c             	sub    $0xc,%esp
5f58238b:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f582390:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
5f582393:	39 c2                	cmp    %eax,%edx
5f582395:	7d 1f                	jge    5f5823b6 <_dinput_register_device+0x36>
5f582397:	8b 75 08             	mov    0x8(%ebp),%esi
5f58239a:	89 c3                	mov    %eax,%ebx
5f58239c:	fc                   	cld    
5f58239d:	c1 e3 02             	shl    $0x2,%ebx
5f5823a0:	8b 0e                	mov    (%esi),%ecx
	if (dinput_devices[i]->pref <= device->pref) {
5f5823a2:	8b 04 95 38 e0 58 5f 	mov    0x5f58e038(,%edx,4),%eax
5f5823a9:	39 08                	cmp    %ecx,(%eax)
5f5823ab:	7e 33                	jle    5f5823e0 <_dinput_register_device+0x60>
5f5823ad:	42                   	inc    %edx
5f5823ae:	83 eb 04             	sub    $0x4,%ebx
5f5823b1:	3b 55 e8             	cmp    0xffffffe8(%ebp),%edx
5f5823b4:	7c ec                	jl     5f5823a2 <_dinput_register_device+0x22>
	    memcpy(dinput_devices+i+1,dinput_devices+i,sizeof(dinput_devices[0])*(nrof_dinput_devices-i));
	    dinput_devices[i] = device;
	    break;
	}
    }
    if (i==nrof_dinput_devices)	/* not found, or too low priority */
5f5823b6:	3b 55 e8             	cmp    0xffffffe8(%ebp),%edx
5f5823b9:	74 16                	je     5f5823d1 <_dinput_register_device+0x51>
	dinput_devices[nrof_dinput_devices] = device;

    nrof_dinput_devices++;
5f5823bb:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
5f5823be:	40                   	inc    %eax
5f5823bf:	a3 28 e0 58 5f       	mov    %eax,0x5f58e028

    /* increase MAX_DDRAW_DRIVERS if the line below triggers */
    assert(nrof_dinput_devices <= MAX_WINE_DINPUT_DEVICES);
5f5823c4:	83 f8 04             	cmp    $0x4,%eax
5f5823c7:	7f 6f                	jg     5f582438 <_dinput_register_device+0xb8>
}
5f5823c9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5823cc:	5b                   	pop    %ebx
5f5823cd:	5e                   	pop    %esi
5f5823ce:	5f                   	pop    %edi
5f5823cf:	5d                   	pop    %ebp
5f5823d0:	c3                   	ret    
5f5823d1:	8b 7d e8             	mov    0xffffffe8(%ebp),%edi
5f5823d4:	8b 45 08             	mov    0x8(%ebp),%eax
5f5823d7:	89 04 bd 38 e0 58 5f 	mov    %eax,0x5f58e038(,%edi,4)
5f5823de:	eb db                	jmp    5f5823bb <_dinput_register_device+0x3b>
5f5823e0:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
5f5823e7:	89 d9                	mov    %ebx,%ecx
5f5823e9:	c1 e9 02             	shr    $0x2,%ecx
5f5823ec:	8d b8 3c e0 58 5f    	lea    0x5f58e03c(%eax),%edi
5f5823f2:	05 38 e0 58 5f       	add    $0x5f58e038,%eax
5f5823f7:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
5f5823fa:	89 c6                	mov    %eax,%esi
5f5823fc:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f5823fe:	f6 c3 02             	test   $0x2,%bl
5f582401:	89 75 ec             	mov    %esi,0xffffffec(%ebp)
5f582404:	89 7d f0             	mov    %edi,0xfffffff0(%ebp)
5f582407:	75 1b                	jne    5f582424 <_dinput_register_device+0xa4>
5f582409:	83 e3 01             	and    $0x1,%ebx
5f58240c:	74 0a                	je     5f582418 <_dinput_register_device+0x98>
5f58240e:	8b 7d ec             	mov    0xffffffec(%ebp),%edi
5f582411:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f582414:	8a 07                	mov    (%edi),%al
5f582416:	88 01                	mov    %al,(%ecx)
5f582418:	8b 75 08             	mov    0x8(%ebp),%esi
5f58241b:	89 34 95 38 e0 58 5f 	mov    %esi,0x5f58e038(,%edx,4)
5f582422:	eb 92                	jmp    5f5823b6 <_dinput_register_device+0x36>
5f582424:	66 8b 06             	mov    (%esi),%ax
5f582427:	83 c6 02             	add    $0x2,%esi
5f58242a:	66 89 07             	mov    %ax,(%edi)
5f58242d:	83 c7 02             	add    $0x2,%edi
5f582430:	89 7d f0             	mov    %edi,0xfffffff0(%ebp)
5f582433:	89 75 ec             	mov    %esi,0xffffffec(%ebp)
5f582436:	eb d1                	jmp    5f582409 <_dinput_register_device+0x89>
5f582438:	52                   	push   %edx
5f582439:	6a 61                	push   $0x61
5f58243b:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582440:	68 10 ad 58 5f       	push   $0x5f58ad10
5f582445:	e8 46 56 00 00       	call   5f587a90 <__assert>
5f58244a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f582450 <_DirectInputCreateEx@20>:

/******************************************************************************
 *	DirectInputCreateEx (DINPUT.@)
 */
HRESULT WINAPI DirectInputCreateEx(
	HINSTANCE hinst, DWORD dwVersion, REFIID riid, LPVOID *ppDI,
	LPUNKNOWN punkOuter) 
{
5f582450:	55                   	push   %ebp
	IDirectInputImpl* This;

	TRACE("(0x%08lx,%04lx,%s,%p,%p)\n", (DWORD)hinst,dwVersion,debugstr_guid(riid),ppDI,punkOuter);

	if (IsEqualGUID(&IID_IDirectInputA,riid) ||
5f582451:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582456:	89 e5                	mov    %esp,%ebp
5f582458:	57                   	push   %edi
5f582459:	56                   	push   %esi
5f58245a:	53                   	push   %ebx
5f58245b:	83 ec 0c             	sub    $0xc,%esp
5f58245e:	be 00 c0 58 5f       	mov    $0x5f58c000,%esi
5f582463:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f582466:	fc                   	cld    
5f582467:	89 df                	mov    %ebx,%edi
5f582469:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58246b:	74 10                	je     5f58247d <_DirectInputCreateEx@20+0x2d>
5f58246d:	be 60 c0 58 5f       	mov    $0x5f58c060,%esi
5f582472:	89 df                	mov    %ebx,%edi
5f582474:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582479:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58247b:	75 3a                	jne    5f5824b7 <_DirectInputCreateEx@20+0x67>
	    IsEqualGUID(&IID_IDirectInput2A,riid) ||
	    IsEqualGUID(&IID_IDirectInput7A,riid)) {
	  This = (IDirectInputImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputImpl));
5f58247d:	50                   	push   %eax
5f58247e:	6a 10                	push   $0x10
5f582480:	6a 00                	push   $0x0
5f582482:	50                   	push   %eax
5f582483:	e8 88 42 00 00       	call   5f586710 <_GetProcessHeap@0>
5f582488:	89 04 24             	mov    %eax,(%esp)
5f58248b:	e8 a0 42 00 00       	call   5f586730 <_HeapAlloc@12>
	  This->lpVtbl = &ddi7avt;
5f582490:	c7 00 a0 8e 58 5f    	movl   $0x5f588ea0,(%eax)
	  This->ref = 1;
	  This->version = 1;
	  *ppDI = This;

	  return DI_OK;
	}

	if (IsEqualGUID(&IID_IDirectInputW,riid) ||
	    IsEqualGUID(&IID_IDirectInput2W,riid) ||
	    IsEqualGUID(&IID_IDirectInput7W,riid)) {
	  This = (IDirectInputImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputImpl));
	  This->lpVtbl = &ddi7wvt;
	  This->ref = 1;
5f582496:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
	  This->version = 1;
5f58249d:	c7 40 0c 01 00 00 00 	movl   $0x1,0xc(%eax)
	  *ppDI = This;

	  return DI_OK;
	}

	if (IsEqualGUID(&IID_IDirectInput8A,riid)) {
	  This = (IDirectInputImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputImpl));
	  This->lpVtbl = &ddi8avt;
	  This->ref = 1;
	  This->version = 8;
	  *ppDI = This;

	  return DI_OK;
	}

	if (IsEqualGUID(&IID_IDirectInput8W,riid)) {
	  This = (IDirectInputImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputImpl));
	  This->lpVtbl = &ddi8wvt;
	  This->ref = 1;
	  This->version = 8;
	  *ppDI = This;
5f5824a4:	8b 55 14             	mov    0x14(%ebp),%edx

	  return DI_OK;
5f5824a7:	31 c9                	xor    %ecx,%ecx
5f5824a9:	89 02                	mov    %eax,(%edx)
	}

	return DIERR_OLDDIRECTINPUTVERSION;
}
5f5824ab:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5824ae:	89 c8                	mov    %ecx,%eax
5f5824b0:	5b                   	pop    %ebx
5f5824b1:	5e                   	pop    %esi
5f5824b2:	5f                   	pop    %edi
5f5824b3:	5d                   	pop    %ebp
5f5824b4:	c2 14 00             	ret    $0x14
5f5824b7:	be 40 c0 58 5f       	mov    $0x5f58c040,%esi
5f5824bc:	89 df                	mov    %ebx,%edi
5f5824be:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5824c3:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5824c5:	74 b6                	je     5f58247d <_DirectInputCreateEx@20+0x2d>
5f5824c7:	fc                   	cld    
5f5824c8:	be 20 bf 58 5f       	mov    $0x5f58bf20,%esi
5f5824cd:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5824d2:	89 df                	mov    %ebx,%edi
5f5824d4:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5824d6:	74 7b                	je     5f582553 <_DirectInputCreateEx@20+0x103>
5f5824d8:	be 50 c0 58 5f       	mov    $0x5f58c050,%esi
5f5824dd:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5824e2:	89 df                	mov    %ebx,%edi
5f5824e4:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5824e6:	74 6b                	je     5f582553 <_DirectInputCreateEx@20+0x103>
5f5824e8:	be 30 c0 58 5f       	mov    $0x5f58c030,%esi
5f5824ed:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5824f2:	89 df                	mov    %ebx,%edi
5f5824f4:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5824f6:	74 5b                	je     5f582553 <_DirectInputCreateEx@20+0x103>
5f5824f8:	fc                   	cld    
5f5824f9:	be 20 c0 58 5f       	mov    $0x5f58c020,%esi
5f5824fe:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582503:	89 df                	mov    %ebx,%edi
5f582505:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582507:	74 68                	je     5f582571 <_DirectInputCreateEx@20+0x121>
5f582509:	fc                   	cld    
5f58250a:	b9 10 00 00 00       	mov    $0x10,%ecx
5f58250f:	be 10 c0 58 5f       	mov    $0x5f58c010,%esi
5f582514:	89 df                	mov    %ebx,%edi
5f582516:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582518:	0f 97 c2             	seta   %dl
5f58251b:	0f 92 c0             	setb   %al
5f58251e:	b9 7e 04 07 80       	mov    $0x8007047e,%ecx
5f582523:	38 c2                	cmp    %al,%dl
5f582525:	75 84                	jne    5f5824ab <_DirectInputCreateEx@20+0x5b>
5f582527:	53                   	push   %ebx
5f582528:	6a 10                	push   $0x10
5f58252a:	6a 00                	push   $0x0
5f58252c:	51                   	push   %ecx
5f58252d:	e8 de 41 00 00       	call   5f586710 <_GetProcessHeap@0>
5f582532:	89 04 24             	mov    %eax,(%esp)
5f582535:	e8 f6 41 00 00       	call   5f586730 <_HeapAlloc@12>
5f58253a:	c7 00 e0 8e 58 5f    	movl   $0x5f588ee0,(%eax)
5f582540:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
5f582547:	c7 40 0c 08 00 00 00 	movl   $0x8,0xc(%eax)
5f58254e:	e9 51 ff ff ff       	jmp    5f5824a4 <_DirectInputCreateEx@20+0x54>
5f582553:	50                   	push   %eax
5f582554:	6a 10                	push   $0x10
5f582556:	6a 00                	push   $0x0
5f582558:	50                   	push   %eax
5f582559:	e8 b2 41 00 00       	call   5f586710 <_GetProcessHeap@0>
5f58255e:	89 04 24             	mov    %eax,(%esp)
5f582561:	e8 ca 41 00 00       	call   5f586730 <_HeapAlloc@12>
5f582566:	c7 00 60 8e 58 5f    	movl   $0x5f588e60,(%eax)
5f58256c:	e9 25 ff ff ff       	jmp    5f582496 <_DirectInputCreateEx@20+0x46>
5f582571:	57                   	push   %edi
5f582572:	6a 10                	push   $0x10
5f582574:	6a 00                	push   $0x0
5f582576:	56                   	push   %esi
5f582577:	e8 94 41 00 00       	call   5f586710 <_GetProcessHeap@0>
5f58257c:	89 04 24             	mov    %eax,(%esp)
5f58257f:	e8 ac 41 00 00       	call   5f586730 <_HeapAlloc@12>
5f582584:	c7 00 20 8f 58 5f    	movl   $0x5f588f20,(%eax)
5f58258a:	eb b4                	jmp    5f582540 <_DirectInputCreateEx@20+0xf0>
5f58258c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f582590 <_DirectInputCreateA@16>:

/******************************************************************************
 *	DirectInputCreateA (DINPUT.@)
 */
HRESULT WINAPI DirectInputCreateA(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTA *ppDI, LPUNKNOWN punkOuter)
{
5f582590:	55                   	push   %ebp
5f582591:	89 e5                	mov    %esp,%ebp
5f582593:	83 ec 0c             	sub    $0xc,%esp
	IDirectInputImpl* This;
	TRACE("(0x%08lx,%04lx,%p,%p)\n", (DWORD)hinst,dwVersion,ppDI,punkOuter);

	//trace:dinput:DirectInputCreateA (0x00400000,0500,0x42bafc54,(nil))
	This = (IDirectInputImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputImpl));
5f582596:	6a 10                	push   $0x10
5f582598:	6a 00                	push   $0x0
5f58259a:	51                   	push   %ecx
5f58259b:	e8 70 41 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5825a0:	89 04 24             	mov    %eax,(%esp)
5f5825a3:	e8 88 41 00 00       	call   5f586730 <_HeapAlloc@12>
	This->lpVtbl = &ddi7avt;
	This->ref = 1;
	if (dwVersion > 0x0700) {
	    This->version = 8;
5f5825a8:	81 7d 0c 01 07 00 00 	cmpl   $0x701,0xc(%ebp)
5f5825af:	c7 00 a0 8e 58 5f    	movl   $0x5f588ea0,(%eax)
5f5825b5:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
5f5825bc:	5a                   	pop    %edx
5f5825bd:	19 d2                	sbb    %edx,%edx
5f5825bf:	83 e2 f9             	and    $0xfffffff9,%edx
5f5825c2:	83 c2 08             	add    $0x8,%edx
5f5825c5:	89 50 0c             	mov    %edx,0xc(%eax)
	} else {
	    /* We do not differientiate between version 1, 2 and 7 */
	    This->version = 1;
	}
	*ppDI = (IDirectInputA*)This;
5f5825c8:	8b 55 10             	mov    0x10(%ebp),%edx
5f5825cb:	89 02                	mov    %eax,(%edx)
	return 0;

}
5f5825cd:	31 c0                	xor    %eax,%eax
5f5825cf:	c9                   	leave  
5f5825d0:	c2 10 00             	ret    $0x10
5f5825d3:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f5825d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5825e0 <_DirectInputCreateW@16>:

/******************************************************************************
 *	DirectInputCreateW (DINPUT.@)
 */
HRESULT WINAPI DirectInputCreateW(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUTW *ppDI, LPUNKNOWN punkOuter)
{
5f5825e0:	55                   	push   %ebp
5f5825e1:	89 e5                	mov    %esp,%ebp
5f5825e3:	83 ec 0c             	sub    $0xc,%esp
	IDirectInputImpl* This;
	TRACE("(0x%08lx,%04lx,%p,%p)\n", (DWORD)hinst,dwVersion,ppDI,punkOuter);
	This = (IDirectInputImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IDirectInputImpl));
5f5825e6:	6a 10                	push   $0x10
5f5825e8:	6a 00                	push   $0x0
5f5825ea:	51                   	push   %ecx
5f5825eb:	e8 20 41 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5825f0:	89 04 24             	mov    %eax,(%esp)
5f5825f3:	e8 38 41 00 00       	call   5f586730 <_HeapAlloc@12>
	This->lpVtbl = &ddi7wvt;
	This->ref = 1;
	if (dwVersion >= 0x0800) {
	    This->version = 8;
5f5825f8:	81 7d 0c 00 08 00 00 	cmpl   $0x800,0xc(%ebp)
5f5825ff:	c7 00 60 8e 58 5f    	movl   $0x5f588e60,(%eax)
5f582605:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
5f58260c:	5a                   	pop    %edx
5f58260d:	19 d2                	sbb    %edx,%edx
5f58260f:	83 e2 f9             	and    $0xfffffff9,%edx
5f582612:	83 c2 08             	add    $0x8,%edx
5f582615:	89 50 0c             	mov    %edx,0xc(%eax)
	} else {
	    /* We do not differientiate between version 1, 2 and 7 */
	    This->version = 1;
	}
	*ppDI = (IDirectInputW*)This;
5f582618:	8b 55 10             	mov    0x10(%ebp),%edx
5f58261b:	89 02                	mov    %eax,(%edx)
	return 0;
}
5f58261d:	31 c0                	xor    %eax,%eax
5f58261f:	c9                   	leave  
5f582620:	c2 10 00             	ret    $0x10
5f582623:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f582629:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582630 <__dump_EnumDevices_dwFlags>:

static const char *_dump_DIDEVTYPE_value(DWORD dwDevType) {
    switch (dwDevType) {
        case 0: return "All devices";
	case DIDEVTYPE_MOUSE: return "DIDEVTYPE_MOUSE";
	case DIDEVTYPE_KEYBOARD: return "DIDEVTYPE_KEYBOARD";
	case DIDEVTYPE_JOYSTICK: return "DIDEVTYPE_JOYSTICK";
	case DIDEVTYPE_DEVICE: return "DIDEVTYPE_DEVICE";
	default: return "Unkown";
    }
}

static void _dump_EnumDevices_dwFlags(DWORD dwFlags) {
5f582630:	55                   	push   %ebp
    if (TRACE_ON(dinput)) {
	unsigned int   i;
	static const struct {
	    DWORD       mask;
	    const char  *name;
	} flags[] = {
#define FE(x) { x, #x}
	    FE(DIEDFL_ALLDEVICES),
	    FE(DIEDFL_ATTACHEDONLY),
	    FE(DIEDFL_FORCEFEEDBACK),
	    FE(DIEDFL_INCLUDEALIASES),
	    FE(DIEDFL_INCLUDEPHANTOMS)
#undef FE
	};
	if (dwFlags == 0) {
5f582631:	85 c0                	test   %eax,%eax
5f582633:	89 e5                	mov    %esp,%ebp
5f582635:	74 0f                	je     5f582646 <__dump_EnumDevices_dwFlags+0x16>
	    DPRINTF("DIEDFL_ALLDEVICES");
	    return;
	}
	for (i = 0; i < (sizeof(flags) / sizeof(flags[0])); i++)
5f582637:	31 c0                	xor    %eax,%eax
5f582639:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f582640:	40                   	inc    %eax
5f582641:	83 f8 04             	cmp    $0x4,%eax
5f582644:	76 fa                	jbe    5f582640 <__dump_EnumDevices_dwFlags+0x10>
	    if (flags[i].mask & dwFlags)
		DPRINTF("%s ",flags[i].name);
    }
}
5f582646:	5d                   	pop    %ebp
5f582647:	c3                   	ret    
5f582648:	90                   	nop    
5f582649:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f582650 <_IDirectInputAImpl_EnumDevices@20>:

/******************************************************************************
 *	IDirectInputA_EnumDevices
 */
static HRESULT WINAPI IDirectInputAImpl_EnumDevices(
	LPDIRECTINPUT7A iface, DWORD dwDevType, LPDIENUMDEVICESCALLBACKA lpCallback,
	LPVOID pvRef, DWORD dwFlags)
{
5f582650:	55                   	push   %ebp
5f582651:	89 e5                	mov    %esp,%ebp
5f582653:	57                   	push   %edi
5f582654:	56                   	push   %esi
5f582655:	53                   	push   %ebx
5f582656:	81 ec 5c 02 00 00    	sub    $0x25c,%esp
    IDirectInputImpl *This = (IDirectInputImpl *)iface;
    DIDEVICEINSTANCEA devInstance;
    int i, j, r;
    
    TRACE("(this=%p,0x%04lx '%s',%p,%p,%04lx)\n",
	  This, dwDevType, _dump_DIDEVTYPE_value(dwDevType),
	  lpCallback, pvRef, dwFlags);

	if (nrof_dinput_devices==0){
5f58265c:	8b 35 28 e0 58 5f    	mov    0x5f58e028,%esi
5f582662:	85 f6                	test   %esi,%esi
5f582664:	74 7d                	je     5f5826e3 <_IDirectInputAImpl_EnumDevices@20+0x93>
	  scan_mouse();
	  scan_keyboard();
	}
	
    TRACE(" flags: "); _dump_EnumDevices_dwFlags(dwFlags); TRACE("\n");
5f582666:	8b 45 18             	mov    0x18(%ebp),%eax
    

    for (i = 0; i < nrof_dinput_devices; i++) {
5f582669:	31 ff                	xor    %edi,%edi
5f58266b:	e8 c0 ff ff ff       	call   5f582630 <__dump_EnumDevices_dwFlags>
5f582670:	3b 3d 28 e0 58 5f    	cmp    0x5f58e028,%edi
5f582676:	7d 5a                	jge    5f5826d2 <_IDirectInputAImpl_EnumDevices@20+0x82>
        for (j = 0, r = -1; r != 0; j++) {
5f582678:	31 f6                	xor    %esi,%esi
5f58267a:	eb 09                	jmp    5f582685 <_IDirectInputAImpl_EnumDevices@20+0x35>
5f58267c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f582680:	46                   	inc    %esi
5f582681:	85 db                	test   %ebx,%ebx
5f582683:	74 5b                	je     5f5826e0 <_IDirectInputAImpl_EnumDevices@20+0x90>
	    devInstance.dwSize = sizeof(devInstance);
	    TRACE("  - checking device %d ('%s')\n", i, dinput_devices[i]->name);
		

	    if ((r = dinput_devices[i]->enum_deviceA(dwDevType, dwFlags, &devInstance, This->version, j))) {
5f582685:	83 ec 0c             	sub    $0xc,%esp
5f582688:	8b 55 08             	mov    0x8(%ebp),%edx
5f58268b:	8b 04 bd 38 e0 58 5f 	mov    0x5f58e038(,%edi,4),%eax
5f582692:	8b 4d 18             	mov    0x18(%ebp),%ecx
5f582695:	56                   	push   %esi
5f582696:	c7 85 98 fd ff ff 44 	movl   $0x244,0xfffffd98(%ebp)
5f58269d:	02 00 00 
5f5826a0:	8b 5a 0c             	mov    0xc(%edx),%ebx
5f5826a3:	8d 95 98 fd ff ff    	lea    0xfffffd98(%ebp),%edx
5f5826a9:	53                   	push   %ebx
5f5826aa:	52                   	push   %edx
5f5826ab:	8b 55 0c             	mov    0xc(%ebp),%edx
5f5826ae:	51                   	push   %ecx
5f5826af:	52                   	push   %edx
5f5826b0:	ff 50 08             	call   *0x8(%eax)
5f5826b3:	83 c4 20             	add    $0x20,%esp
5f5826b6:	89 c3                	mov    %eax,%ebx
5f5826b8:	85 c0                	test   %eax,%eax
5f5826ba:	74 c4                	je     5f582680 <_IDirectInputAImpl_EnumDevices@20+0x30>
	        if (lpCallback(&devInstance,pvRef) == DIENUM_STOP)
5f5826bc:	50                   	push   %eax
5f5826bd:	50                   	push   %eax
5f5826be:	8b 45 14             	mov    0x14(%ebp),%eax
5f5826c1:	50                   	push   %eax
5f5826c2:	8d 85 98 fd ff ff    	lea    0xfffffd98(%ebp),%eax
5f5826c8:	50                   	push   %eax
5f5826c9:	ff 55 10             	call   *0x10(%ebp)
5f5826cc:	5a                   	pop    %edx
5f5826cd:	85 c0                	test   %eax,%eax
5f5826cf:	59                   	pop    %ecx
5f5826d0:	75 ae                	jne    5f582680 <_IDirectInputAImpl_EnumDevices@20+0x30>
		    return 0;
	    }
	}
    }
    
    return 0;
}
5f5826d2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5826d5:	31 c0                	xor    %eax,%eax
5f5826d7:	5b                   	pop    %ebx
5f5826d8:	5e                   	pop    %esi
5f5826d9:	5f                   	pop    %edi
5f5826da:	5d                   	pop    %ebp
5f5826db:	c2 14 00             	ret    $0x14
5f5826de:	89 f6                	mov    %esi,%esi
5f5826e0:	47                   	inc    %edi
5f5826e1:	eb 8d                	jmp    5f582670 <_IDirectInputAImpl_EnumDevices@20+0x20>
5f5826e3:	e8 48 1f 00 00       	call   5f584630 <_scan_mouse>
5f5826e8:	e8 a3 10 00 00       	call   5f583790 <_scan_keyboard>
5f5826ed:	e9 74 ff ff ff       	jmp    5f582666 <_IDirectInputAImpl_EnumDevices@20+0x16>
5f5826f2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5826f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582700 <_IDirectInputWImpl_EnumDevices@20>:
/******************************************************************************
 *	IDirectInputW_EnumDevices
 */
static HRESULT WINAPI IDirectInputWImpl_EnumDevices(
	LPDIRECTINPUT7W iface, DWORD dwDevType, LPDIENUMDEVICESCALLBACKW lpCallback,
	LPVOID pvRef, DWORD dwFlags) 
{
5f582700:	55                   	push   %ebp
5f582701:	89 e5                	mov    %esp,%ebp
5f582703:	57                   	push   %edi
5f582704:	56                   	push   %esi
5f582705:	53                   	push   %ebx
5f582706:	81 ec 5c 04 00 00    	sub    $0x45c,%esp
    IDirectInputImpl *This = (IDirectInputImpl *)iface;
    DIDEVICEINSTANCEW devInstance;
    int i, j, r;
    
		if (nrof_dinput_devices==0){
5f58270c:	8b 35 28 e0 58 5f    	mov    0x5f58e028,%esi
5f582712:	85 f6                	test   %esi,%esi
5f582714:	74 7d                	je     5f582793 <_IDirectInputWImpl_EnumDevices@20+0x93>
	  scan_mouse();
	  scan_keyboard();
	}

    TRACE("(this=%p,0x%04lx '%s',%p,%p,%04lx)\n",
	  This, dwDevType, _dump_DIDEVTYPE_value(dwDevType),
	  lpCallback, pvRef, dwFlags);
    TRACE(" flags: "); _dump_EnumDevices_dwFlags(dwFlags); TRACE("\n");
5f582716:	8b 45 18             	mov    0x18(%ebp),%eax


    for (i = 0; i < nrof_dinput_devices; i++) {
5f582719:	31 ff                	xor    %edi,%edi
5f58271b:	e8 10 ff ff ff       	call   5f582630 <__dump_EnumDevices_dwFlags>
5f582720:	3b 3d 28 e0 58 5f    	cmp    0x5f58e028,%edi
5f582726:	7d 5a                	jge    5f582782 <_IDirectInputWImpl_EnumDevices@20+0x82>
        for (j = 0, r = -1; r != 0; j++) {
5f582728:	31 f6                	xor    %esi,%esi
5f58272a:	eb 09                	jmp    5f582735 <_IDirectInputWImpl_EnumDevices@20+0x35>
5f58272c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f582730:	46                   	inc    %esi
5f582731:	85 db                	test   %ebx,%ebx
5f582733:	74 5b                	je     5f582790 <_IDirectInputWImpl_EnumDevices@20+0x90>
	    devInstance.dwSize = sizeof(devInstance);
	    TRACE("  - checking device %d ('%s')\n", i, dinput_devices[i]->name);
	    if ((r = dinput_devices[i]->enum_deviceW(dwDevType, dwFlags, &devInstance, This->version, j))) {
5f582735:	83 ec 0c             	sub    $0xc,%esp
5f582738:	8b 55 08             	mov    0x8(%ebp),%edx
5f58273b:	8b 04 bd 38 e0 58 5f 	mov    0x5f58e038(,%edi,4),%eax
5f582742:	8b 4d 18             	mov    0x18(%ebp),%ecx
5f582745:	56                   	push   %esi
5f582746:	c7 85 98 fb ff ff 4c 	movl   $0x44c,0xfffffb98(%ebp)
5f58274d:	04 00 00 
5f582750:	8b 5a 0c             	mov    0xc(%edx),%ebx
5f582753:	8d 95 98 fb ff ff    	lea    0xfffffb98(%ebp),%edx
5f582759:	53                   	push   %ebx
5f58275a:	52                   	push   %edx
5f58275b:	8b 55 0c             	mov    0xc(%ebp),%edx
5f58275e:	51                   	push   %ecx
5f58275f:	52                   	push   %edx
5f582760:	ff 50 0c             	call   *0xc(%eax)
5f582763:	83 c4 20             	add    $0x20,%esp
5f582766:	89 c3                	mov    %eax,%ebx
5f582768:	85 c0                	test   %eax,%eax
5f58276a:	74 c4                	je     5f582730 <_IDirectInputWImpl_EnumDevices@20+0x30>
	        if (lpCallback(&devInstance,pvRef) == DIENUM_STOP)
5f58276c:	50                   	push   %eax
5f58276d:	50                   	push   %eax
5f58276e:	8b 45 14             	mov    0x14(%ebp),%eax
5f582771:	50                   	push   %eax
5f582772:	8d 85 98 fb ff ff    	lea    0xfffffb98(%ebp),%eax
5f582778:	50                   	push   %eax
5f582779:	ff 55 10             	call   *0x10(%ebp)
5f58277c:	5a                   	pop    %edx
5f58277d:	85 c0                	test   %eax,%eax
5f58277f:	59                   	pop    %ecx
5f582780:	75 ae                	jne    5f582730 <_IDirectInputWImpl_EnumDevices@20+0x30>
		    return 0;
	    }
	}
    }
    
    return 0;
}
5f582782:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582785:	31 c0                	xor    %eax,%eax
5f582787:	5b                   	pop    %ebx
5f582788:	5e                   	pop    %esi
5f582789:	5f                   	pop    %edi
5f58278a:	5d                   	pop    %ebp
5f58278b:	c2 14 00             	ret    $0x14
5f58278e:	89 f6                	mov    %esi,%esi
5f582790:	47                   	inc    %edi
5f582791:	eb 8d                	jmp    5f582720 <_IDirectInputWImpl_EnumDevices@20+0x20>
5f582793:	e8 98 1e 00 00       	call   5f584630 <_scan_mouse>
5f582798:	e8 f3 0f 00 00       	call   5f583790 <_scan_keyboard>
5f58279d:	e9 74 ff ff ff       	jmp    5f582716 <_IDirectInputWImpl_EnumDevices@20+0x16>
5f5827a2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5827a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5827b0 <_IDirectInputAImpl_AddRef@4>:

static ULONG WINAPI IDirectInputAImpl_AddRef(LPDIRECTINPUT7A iface)
{
5f5827b0:	55                   	push   %ebp
5f5827b1:	89 e5                	mov    %esp,%ebp
	IDirectInputImpl *This = (IDirectInputImpl *)iface;
	return InterlockedIncrement((&This->ref));
5f5827b3:	8b 45 08             	mov    0x8(%ebp),%eax
5f5827b6:	83 c0 04             	add    $0x4,%eax
5f5827b9:	89 45 08             	mov    %eax,0x8(%ebp)
}
5f5827bc:	c9                   	leave  
5f5827bd:	e9 9e 3f 00 00       	jmp    5f586760 <_InterlockedIncrement@4>
5f5827c2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5827c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5827d0 <_IDirectInputAImpl_Release@4>:

static ULONG WINAPI IDirectInputAImpl_Release(LPDIRECTINPUT7A iface)
{
5f5827d0:	55                   	push   %ebp
5f5827d1:	89 e5                	mov    %esp,%ebp
5f5827d3:	56                   	push   %esi
5f5827d4:	53                   	push   %ebx
5f5827d5:	8b 75 08             	mov    0x8(%ebp),%esi
	IDirectInputImpl *This = (IDirectInputImpl *)iface;
	ULONG ref;
	ref = InterlockedDecrement(&(This->ref));
5f5827d8:	83 ec 0c             	sub    $0xc,%esp
5f5827db:	8d 46 04             	lea    0x4(%esi),%eax
5f5827de:	50                   	push   %eax
5f5827df:	e8 6c 3f 00 00       	call   5f586750 <_InterlockedDecrement@4>
	if (ref == 0)
5f5827e4:	83 c4 0c             	add    $0xc,%esp
5f5827e7:	89 c3                	mov    %eax,%ebx
5f5827e9:	85 c0                	test   %eax,%eax
5f5827eb:	74 0b                	je     5f5827f8 <_IDirectInputAImpl_Release@4+0x28>
		HeapFree(GetProcessHeap(),0,This);
	return ref;
}
5f5827ed:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5827f0:	89 d8                	mov    %ebx,%eax
5f5827f2:	5b                   	pop    %ebx
5f5827f3:	5e                   	pop    %esi
5f5827f4:	5d                   	pop    %ebp
5f5827f5:	c2 04 00             	ret    $0x4
5f5827f8:	50                   	push   %eax
5f5827f9:	56                   	push   %esi
5f5827fa:	6a 00                	push   $0x0
5f5827fc:	50                   	push   %eax
5f5827fd:	e8 0e 3f 00 00       	call   5f586710 <_GetProcessHeap@0>
5f582802:	89 04 24             	mov    %eax,(%esp)
5f582805:	e8 16 3f 00 00       	call   5f586720 <_HeapFree@12>
5f58280a:	58                   	pop    %eax
5f58280b:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f58280e:	89 d8                	mov    %ebx,%eax
5f582810:	5b                   	pop    %ebx
5f582811:	5e                   	pop    %esi
5f582812:	5d                   	pop    %ebp
5f582813:	c2 04 00             	ret    $0x4
5f582816:	8d 76 00             	lea    0x0(%esi),%esi
5f582819:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582820 <_IDirectInputAImpl_QueryInterface@12>:

static HRESULT WINAPI IDirectInputAImpl_QueryInterface(LPDIRECTINPUT7A iface, REFIID riid, LPVOID *ppobj) {
5f582820:	55                   	push   %ebp
	IDirectInputImpl *This = (IDirectInputImpl *)iface;

	TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
	if (IsEqualGUID(&IID_IUnknown,riid) ||
5f582821:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582826:	89 e5                	mov    %esp,%ebp
5f582828:	57                   	push   %edi
5f582829:	56                   	push   %esi
5f58282a:	53                   	push   %ebx
5f58282b:	83 ec 0c             	sub    $0xc,%esp
5f58282e:	be 40 75 58 5f       	mov    $0x5f587540,%esi
5f582833:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f582836:	fc                   	cld    
5f582837:	89 df                	mov    %ebx,%edi
5f582839:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58283b:	74 10                	je     5f58284d <_IDirectInputAImpl_QueryInterface@12+0x2d>
5f58283d:	be 00 c0 58 5f       	mov    $0x5f58c000,%esi
5f582842:	89 df                	mov    %ebx,%edi
5f582844:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582849:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58284b:	75 23                	jne    5f582870 <_IDirectInputAImpl_QueryInterface@12+0x50>
	    IsEqualGUID(&IID_IDirectInputA,riid) ||
	    IsEqualGUID(&IID_IDirectInput2A,riid) ||
	    IsEqualGUID(&IID_IDirectInput7A,riid)) {
		IDirectInputAImpl_AddRef(iface);
5f58284d:	83 ec 0c             	sub    $0xc,%esp
5f582850:	8b 45 08             	mov    0x8(%ebp),%eax
5f582853:	50                   	push   %eax
5f582854:	e8 57 ff ff ff       	call   5f5827b0 <_IDirectInputAImpl_AddRef@4>
		*ppobj = This;
5f582859:	8b 45 10             	mov    0x10(%ebp),%eax
5f58285c:	8b 55 08             	mov    0x8(%ebp),%edx
		return 0;
5f58285f:	31 c9                	xor    %ecx,%ecx
5f582861:	89 10                	mov    %edx,(%eax)
	}
	TRACE("Unsupported interface !\n");
	return E_FAIL;
}
5f582863:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582866:	89 c8                	mov    %ecx,%eax
5f582868:	5b                   	pop    %ebx
5f582869:	5e                   	pop    %esi
5f58286a:	5f                   	pop    %edi
5f58286b:	5d                   	pop    %ebp
5f58286c:	c2 0c 00             	ret    $0xc
5f58286f:	90                   	nop    
5f582870:	be 60 c0 58 5f       	mov    $0x5f58c060,%esi
5f582875:	89 df                	mov    %ebx,%edi
5f582877:	b9 10 00 00 00       	mov    $0x10,%ecx
5f58287c:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58287e:	74 cd                	je     5f58284d <_IDirectInputAImpl_QueryInterface@12+0x2d>
5f582880:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582885:	be 40 c0 58 5f       	mov    $0x5f58c040,%esi
5f58288a:	89 df                	mov    %ebx,%edi
5f58288c:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58288e:	0f 97 c2             	seta   %dl
5f582891:	0f 92 c0             	setb   %al
5f582894:	b9 05 40 00 80       	mov    $0x80004005,%ecx
5f582899:	38 c2                	cmp    %al,%dl
5f58289b:	74 b0                	je     5f58284d <_IDirectInputAImpl_QueryInterface@12+0x2d>
5f58289d:	eb c4                	jmp    5f582863 <_IDirectInputAImpl_QueryInterface@12+0x43>
5f58289f:	90                   	nop    

5f5828a0 <_IDirectInputWImpl_QueryInterface@12>:

static HRESULT WINAPI IDirectInputWImpl_QueryInterface(LPDIRECTINPUT7W iface, REFIID riid, LPVOID *ppobj) {
5f5828a0:	55                   	push   %ebp
	IDirectInputImpl *This = (IDirectInputImpl *)iface;

	TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
	if (IsEqualGUID(&IID_IUnknown,riid) ||
5f5828a1:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5828a6:	89 e5                	mov    %esp,%ebp
5f5828a8:	57                   	push   %edi
5f5828a9:	56                   	push   %esi
5f5828aa:	53                   	push   %ebx
5f5828ab:	83 ec 0c             	sub    $0xc,%esp
5f5828ae:	be 40 75 58 5f       	mov    $0x5f587540,%esi
5f5828b3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f5828b6:	fc                   	cld    
5f5828b7:	89 df                	mov    %ebx,%edi
5f5828b9:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5828bb:	74 10                	je     5f5828cd <_IDirectInputWImpl_QueryInterface@12+0x2d>
5f5828bd:	be 20 bf 58 5f       	mov    $0x5f58bf20,%esi
5f5828c2:	89 df                	mov    %ebx,%edi
5f5828c4:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5828c9:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5828cb:	75 23                	jne    5f5828f0 <_IDirectInputWImpl_QueryInterface@12+0x50>
	    IsEqualGUID(&IID_IDirectInputW,riid) ||
	    IsEqualGUID(&IID_IDirectInput2W,riid) ||
	    IsEqualGUID(&IID_IDirectInput7W,riid)) {
		IDirectInputAImpl_AddRef((LPDIRECTINPUT7A) iface);
5f5828cd:	83 ec 0c             	sub    $0xc,%esp
5f5828d0:	8b 45 08             	mov    0x8(%ebp),%eax
5f5828d3:	50                   	push   %eax
5f5828d4:	e8 d7 fe ff ff       	call   5f5827b0 <_IDirectInputAImpl_AddRef@4>
		*ppobj = This;
5f5828d9:	8b 45 10             	mov    0x10(%ebp),%eax
5f5828dc:	8b 55 08             	mov    0x8(%ebp),%edx
		return 0;
5f5828df:	31 c9                	xor    %ecx,%ecx
5f5828e1:	89 10                	mov    %edx,(%eax)
	}
	TRACE("Unsupported interface !\n");
	return E_FAIL;
}
5f5828e3:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5828e6:	89 c8                	mov    %ecx,%eax
5f5828e8:	5b                   	pop    %ebx
5f5828e9:	5e                   	pop    %esi
5f5828ea:	5f                   	pop    %edi
5f5828eb:	5d                   	pop    %ebp
5f5828ec:	c2 0c 00             	ret    $0xc
5f5828ef:	90                   	nop    
5f5828f0:	be 50 c0 58 5f       	mov    $0x5f58c050,%esi
5f5828f5:	89 df                	mov    %ebx,%edi
5f5828f7:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5828fc:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5828fe:	74 cd                	je     5f5828cd <_IDirectInputWImpl_QueryInterface@12+0x2d>
5f582900:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582905:	be 30 c0 58 5f       	mov    $0x5f58c030,%esi
5f58290a:	89 df                	mov    %ebx,%edi
5f58290c:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f58290e:	0f 97 c2             	seta   %dl
5f582911:	0f 92 c0             	setb   %al
5f582914:	b9 05 40 00 80       	mov    $0x80004005,%ecx
5f582919:	38 c2                	cmp    %al,%dl
5f58291b:	74 b0                	je     5f5828cd <_IDirectInputWImpl_QueryInterface@12+0x2d>
5f58291d:	eb c4                	jmp    5f5828e3 <_IDirectInputWImpl_QueryInterface@12+0x43>
5f58291f:	90                   	nop    

5f582920 <_IDirectInputAImpl_CreateDevice@16>:

static HRESULT WINAPI IDirectInputAImpl_CreateDevice(
	LPDIRECTINPUT7A iface,REFGUID rguid,LPDIRECTINPUTDEVICEA* pdev,
	LPUNKNOWN punk
) {
5f582920:	55                   	push   %ebp
5f582921:	89 e5                	mov    %esp,%ebp
5f582923:	57                   	push   %edi
5f582924:	56                   	push   %esi
5f582925:	53                   	push   %ebx
5f582926:	83 ec 0c             	sub    $0xc,%esp
	IDirectInputImpl *This = (IDirectInputImpl *)iface;
	HRESULT ret_value = DIERR_DEVICENOTREG;
5f582929:	c7 45 f0 54 01 04 80 	movl   $0x80040154,0xfffffff0(%ebp)
	int i;

	TRACE("(this=%p,%s,%p,%p)\n",This,debugstr_guid(rguid),pdev,punk);
	
	if (nrof_dinput_devices==0){
5f582930:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f582935:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f582938:	8b 75 10             	mov    0x10(%ebp),%esi
5f58293b:	85 c0                	test   %eax,%eax
5f58293d:	74 41                	je     5f582980 <_IDirectInputAImpl_CreateDevice@16+0x60>
	  scan_mouse();
	  scan_keyboard();
	}
	
	/* Loop on all the devices to see if anyone matches the given GUID */
	for (i = 0; i < nrof_dinput_devices; i++) {
5f58293f:	31 db                	xor    %ebx,%ebx
5f582941:	39 c3                	cmp    %eax,%ebx
5f582943:	7d 29                	jge    5f58296e <_IDirectInputAImpl_CreateDevice@16+0x4e>
	  HRESULT ret;
	  if ((ret = dinput_devices[i]->create_deviceA(This, rguid, NULL, pdev)) == DI_OK)
5f582945:	8b 04 9d 38 e0 58 5f 	mov    0x5f58e038(,%ebx,4),%eax
5f58294c:	8b 55 08             	mov    0x8(%ebp),%edx
5f58294f:	56                   	push   %esi
5f582950:	6a 00                	push   $0x0
5f582952:	57                   	push   %edi
5f582953:	52                   	push   %edx
5f582954:	ff 50 10             	call   *0x10(%eax)
5f582957:	83 c4 10             	add    $0x10,%esp
5f58295a:	85 c0                	test   %eax,%eax
5f58295c:	74 13                	je     5f582971 <_IDirectInputAImpl_CreateDevice@16+0x51>
	    return DI_OK;

	  if (ret == DIERR_NOINTERFACE)
5f58295e:	3d 02 40 00 80       	cmp    $0x80004002,%eax
5f582963:	74 2c                	je     5f582991 <_IDirectInputAImpl_CreateDevice@16+0x71>
5f582965:	43                   	inc    %ebx
5f582966:	3b 1d 28 e0 58 5f    	cmp    0x5f58e028,%ebx
5f58296c:	7c d7                	jl     5f582945 <_IDirectInputAImpl_CreateDevice@16+0x25>
	    ret_value = DIERR_NOINTERFACE;
	}

	return ret_value;
5f58296e:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
}
5f582971:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582974:	5b                   	pop    %ebx
5f582975:	5e                   	pop    %esi
5f582976:	5f                   	pop    %edi
5f582977:	5d                   	pop    %ebp
5f582978:	c2 10 00             	ret    $0x10
5f58297b:	90                   	nop    
5f58297c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f582980:	e8 ab 1c 00 00       	call   5f584630 <_scan_mouse>
5f582985:	e8 06 0e 00 00       	call   5f583790 <_scan_keyboard>
5f58298a:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f58298f:	eb ae                	jmp    5f58293f <_IDirectInputAImpl_CreateDevice@16+0x1f>
5f582991:	c7 45 f0 02 40 00 80 	movl   $0x80004002,0xfffffff0(%ebp)
5f582998:	eb cb                	jmp    5f582965 <_IDirectInputAImpl_CreateDevice@16+0x45>
5f58299a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f5829a0 <_IDirectInputWImpl_CreateDevice@16>:

static HRESULT WINAPI IDirectInputWImpl_CreateDevice(LPDIRECTINPUT7A iface, 
						     REFGUID rguid, LPDIRECTINPUTDEVICEW* pdev, LPUNKNOWN punk) {
5f5829a0:	55                   	push   %ebp
5f5829a1:	89 e5                	mov    %esp,%ebp
5f5829a3:	57                   	push   %edi
5f5829a4:	56                   	push   %esi
5f5829a5:	53                   	push   %ebx
5f5829a6:	83 ec 0c             	sub    $0xc,%esp
        IDirectInputImpl *This = (IDirectInputImpl *)iface;
	HRESULT ret_value = DIERR_DEVICENOTREG;
5f5829a9:	c7 45 f0 54 01 04 80 	movl   $0x80040154,0xfffffff0(%ebp)
	int i;
    
	TRACE("(this=%p,%s,%p,%p)\n",This,debugstr_guid(rguid),pdev,punk);

	if (nrof_dinput_devices==0){
5f5829b0:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f5829b5:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f5829b8:	8b 75 10             	mov    0x10(%ebp),%esi
5f5829bb:	85 c0                	test   %eax,%eax
5f5829bd:	74 41                	je     5f582a00 <_IDirectInputWImpl_CreateDevice@16+0x60>
	  scan_mouse();
	  scan_keyboard();
	}
	
	/* Loop on all the devices to see if anyone matches the given GUID */
	for (i = 0; i < nrof_dinput_devices; i++) {
5f5829bf:	31 db                	xor    %ebx,%ebx
5f5829c1:	39 c3                	cmp    %eax,%ebx
5f5829c3:	7d 29                	jge    5f5829ee <_IDirectInputWImpl_CreateDevice@16+0x4e>
	  HRESULT ret;
	  if ((ret = dinput_devices[i]->create_deviceW(This, rguid, NULL, pdev)) == DI_OK)
5f5829c5:	8b 04 9d 38 e0 58 5f 	mov    0x5f58e038(,%ebx,4),%eax
5f5829cc:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f5829cf:	56                   	push   %esi
5f5829d0:	6a 00                	push   $0x0
5f5829d2:	57                   	push   %edi
5f5829d3:	51                   	push   %ecx
5f5829d4:	ff 50 14             	call   *0x14(%eax)
5f5829d7:	83 c4 10             	add    $0x10,%esp
5f5829da:	85 c0                	test   %eax,%eax
5f5829dc:	74 13                	je     5f5829f1 <_IDirectInputWImpl_CreateDevice@16+0x51>
	    return DI_OK;

	  if (ret == DIERR_NOINTERFACE)
5f5829de:	3d 02 40 00 80       	cmp    $0x80004002,%eax
5f5829e3:	74 2c                	je     5f582a11 <_IDirectInputWImpl_CreateDevice@16+0x71>
5f5829e5:	43                   	inc    %ebx
5f5829e6:	3b 1d 28 e0 58 5f    	cmp    0x5f58e028,%ebx
5f5829ec:	7c d7                	jl     5f5829c5 <_IDirectInputWImpl_CreateDevice@16+0x25>
	    ret_value = DIERR_NOINTERFACE;
	}

	return ret_value;
5f5829ee:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
}
5f5829f1:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5829f4:	5b                   	pop    %ebx
5f5829f5:	5e                   	pop    %esi
5f5829f6:	5f                   	pop    %edi
5f5829f7:	5d                   	pop    %ebp
5f5829f8:	c2 10 00             	ret    $0x10
5f5829fb:	90                   	nop    
5f5829fc:	8d 74 26 00          	lea    0x0(%esi),%esi
5f582a00:	e8 2b 1c 00 00       	call   5f584630 <_scan_mouse>
5f582a05:	e8 86 0d 00 00       	call   5f583790 <_scan_keyboard>
5f582a0a:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f582a0f:	eb ae                	jmp    5f5829bf <_IDirectInputWImpl_CreateDevice@16+0x1f>
5f582a11:	c7 45 f0 02 40 00 80 	movl   $0x80004002,0xfffffff0(%ebp)
5f582a18:	eb cb                	jmp    5f5829e5 <_IDirectInputWImpl_CreateDevice@16+0x45>
5f582a1a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f582a20 <_IDirectInputAImpl_Initialize@12>:

static HRESULT WINAPI IDirectInputAImpl_Initialize(LPDIRECTINPUT7A iface, HINSTANCE hinst, DWORD x) {
5f582a20:	55                   	push   %ebp
	return DIERR_ALREADYINITIALIZED;
}
5f582a21:	b8 df 04 07 80       	mov    $0x800704df,%eax
5f582a26:	89 e5                	mov    %esp,%ebp
5f582a28:	5d                   	pop    %ebp
5f582a29:	c2 0c 00             	ret    $0xc
5f582a2c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f582a30 <_IDirectInputAImpl_GetDeviceStatus@8>:

static HRESULT WINAPI IDirectInputAImpl_GetDeviceStatus(LPDIRECTINPUT7A iface,
							REFGUID rguid) {
5f582a30:	55                   	push   %ebp
5f582a31:	89 e5                	mov    %esp,%ebp
5f582a33:	50                   	push   %eax
5f582a34:	50                   	push   %eax
  IDirectInputImpl *This = (IDirectInputImpl *)iface;

  FIXME("(%p)->(%s): stub\n",This,debugstr_guid(rguid));
5f582a35:	68 00 ae 58 5f       	push   $0x5f58ae00
5f582a3a:	68 a5 01 00 00       	push   $0x1a5
5f582a3f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582a44:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582a49:	e8 22 4b 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f582a4e:	58                   	pop    %eax
5f582a4f:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582a52:	50                   	push   %eax
5f582a53:	e8 18 37 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f582a58:	83 c4 0c             	add    $0xc,%esp
5f582a5b:	50                   	push   %eax
5f582a5c:	8b 45 08             	mov    0x8(%ebp),%eax
5f582a5f:	50                   	push   %eax
5f582a60:	68 2e ae 58 5f       	push   $0x5f58ae2e
5f582a65:	e8 06 4b 00 00       	call   5f587570 <_DbgPrint>

  return DI_OK;
}
5f582a6a:	31 c0                	xor    %eax,%eax
5f582a6c:	c9                   	leave  
5f582a6d:	c2 08 00             	ret    $0x8

5f582a70 <_IDirectInputAImpl_RunControlPanel@12>:

static HRESULT WINAPI IDirectInputAImpl_RunControlPanel(LPDIRECTINPUT7A iface,
							HWND hwndOwner,
							DWORD dwFlags) {
5f582a70:	55                   	push   %ebp
5f582a71:	89 e5                	mov    %esp,%ebp
5f582a73:	51                   	push   %ecx
5f582a74:	51                   	push   %ecx
  IDirectInputImpl *This = (IDirectInputImpl *)iface;
  FIXME("(%p)->(%08lx,%08lx): stub\n",This, (DWORD) hwndOwner, dwFlags);
5f582a75:	68 40 ae 58 5f       	push   $0x5f58ae40
5f582a7a:	68 ae 01 00 00       	push   $0x1ae
5f582a7f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582a84:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582a89:	e8 e2 4a 00 00       	call   5f587570 <_DbgPrint>
5f582a8e:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582a91:	8b 55 10             	mov    0x10(%ebp),%edx
5f582a94:	52                   	push   %edx
5f582a95:	50                   	push   %eax
5f582a96:	8b 45 08             	mov    0x8(%ebp),%eax
5f582a99:	50                   	push   %eax
5f582a9a:	68 62 ae 58 5f       	push   $0x5f58ae62
5f582a9f:	e8 cc 4a 00 00       	call   5f587570 <_DbgPrint>

  return DI_OK;
}
5f582aa4:	31 c0                	xor    %eax,%eax
5f582aa6:	c9                   	leave  
5f582aa7:	c2 0c 00             	ret    $0xc
5f582aaa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f582ab0 <_IDirectInput2AImpl_FindDevice@16>:

static HRESULT WINAPI IDirectInput2AImpl_FindDevice(LPDIRECTINPUT7A iface, REFGUID rguid,
						    LPCSTR pszName, LPGUID pguidInstance) {
5f582ab0:	55                   	push   %ebp
5f582ab1:	89 e5                	mov    %esp,%ebp
5f582ab3:	50                   	push   %eax
5f582ab4:	50                   	push   %eax
  IDirectInputImpl *This = (IDirectInputImpl *)iface;
  FIXME("(%p)->(%s, %s, %p): stub\n", This, debugstr_guid(rguid), pszName, pguidInstance);
5f582ab5:	68 7d ae 58 5f       	push   $0x5f58ae7d
5f582aba:	68 b6 01 00 00       	push   $0x1b6
5f582abf:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582ac4:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582ac9:	e8 a2 4a 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f582ace:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f582ad1:	58                   	pop    %eax
5f582ad2:	51                   	push   %ecx
5f582ad3:	e8 98 36 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f582ad8:	5a                   	pop    %edx
5f582ad9:	8b 4d 14             	mov    0x14(%ebp),%ecx
5f582adc:	8b 55 10             	mov    0x10(%ebp),%edx
5f582adf:	51                   	push   %ecx
5f582ae0:	52                   	push   %edx
5f582ae1:	50                   	push   %eax
5f582ae2:	8b 45 08             	mov    0x8(%ebp),%eax
5f582ae5:	50                   	push   %eax
5f582ae6:	68 9b ae 58 5f       	push   $0x5f58ae9b
5f582aeb:	e8 80 4a 00 00       	call   5f587570 <_DbgPrint>

  return DI_OK;
}
5f582af0:	31 c0                	xor    %eax,%eax
5f582af2:	c9                   	leave  
5f582af3:	c2 10 00             	ret    $0x10
5f582af6:	8d 76 00             	lea    0x0(%esi),%esi
5f582af9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582b00 <_IDirectInput2WImpl_FindDevice@16>:

static HRESULT WINAPI IDirectInput2WImpl_FindDevice(LPDIRECTINPUT7W iface, REFGUID rguid,
						    LPCWSTR pszName, LPGUID pguidInstance) {
5f582b00:	55                   	push   %ebp
5f582b01:	89 e5                	mov    %esp,%ebp
5f582b03:	53                   	push   %ebx
5f582b04:	50                   	push   %eax
  IDirectInputImpl *This = (IDirectInputImpl *)iface;
  FIXME("(%p)->(%s, %s, %p): stub\n", This, debugstr_guid(rguid), debugstr_w(pszName), pguidInstance);
5f582b05:	68 b5 ae 58 5f       	push   $0x5f58aeb5
5f582b0a:	68 be 01 00 00       	push   $0x1be
5f582b0f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582b14:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582b19:	e8 52 4a 00 00       	call   5f587570 <_DbgPrint>
inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
inline static const char *debugstr_a( const char *s )  { return wine_dbgstr_an( s, 80 ); }
inline static const char *debugstr_w( const wchar_t *s ) { return wine_dbgstr_wn( s, 80 ); }
5f582b1e:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f582b21:	5b                   	pop    %ebx
5f582b22:	58                   	pop    %eax
5f582b23:	6a 50                	push   $0x50
5f582b25:	51                   	push   %ecx
5f582b26:	e8 f5 36 00 00       	call   5f586220 <_wine_dbgstr_wn>
5f582b2b:	5a                   	pop    %edx
5f582b2c:	89 c3                	mov    %eax,%ebx
5f582b2e:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582b31:	50                   	push   %eax
5f582b32:	e8 39 36 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f582b37:	59                   	pop    %ecx
5f582b38:	8b 55 14             	mov    0x14(%ebp),%edx
5f582b3b:	52                   	push   %edx
5f582b3c:	53                   	push   %ebx
5f582b3d:	50                   	push   %eax
5f582b3e:	8b 45 08             	mov    0x8(%ebp),%eax
5f582b41:	50                   	push   %eax
5f582b42:	68 9b ae 58 5f       	push   $0x5f58ae9b
5f582b47:	e8 24 4a 00 00       	call   5f587570 <_DbgPrint>

  return DI_OK;
}
5f582b4c:	31 c0                	xor    %eax,%eax
5f582b4e:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f582b51:	c9                   	leave  
5f582b52:	c2 10 00             	ret    $0x10
5f582b55:	8d 74 26 00          	lea    0x0(%esi),%esi
5f582b59:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582b60 <_IDirectInput7AImpl_CreateDeviceEx@20>:

static HRESULT WINAPI IDirectInput7AImpl_CreateDeviceEx(LPDIRECTINPUT7A iface, REFGUID rguid,
							REFIID riid, LPVOID* pvOut, LPUNKNOWN lpUnknownOuter)
{
5f582b60:	55                   	push   %ebp
5f582b61:	89 e5                	mov    %esp,%ebp
5f582b63:	57                   	push   %edi
5f582b64:	56                   	push   %esi
5f582b65:	53                   	push   %ebx
5f582b66:	83 ec 0c             	sub    $0xc,%esp
  IDirectInputImpl *This = (IDirectInputImpl *)iface;
  HRESULT ret_value = DIERR_DEVICENOTREG;
5f582b69:	c7 45 ec 54 01 04 80 	movl   $0x80040154,0xffffffec(%ebp)
5f582b70:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582b73:	8b 7d 10             	mov    0x10(%ebp),%edi
5f582b76:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
  int i;

  TRACE("(%p)->(%s, %s, %p, %p)\n", This, debugstr_guid(rguid), debugstr_guid(riid), pvOut, lpUnknownOuter);

  if (nrof_dinput_devices==0){
5f582b79:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f582b7e:	8b 75 14             	mov    0x14(%ebp),%esi
5f582b81:	85 c0                	test   %eax,%eax
5f582b83:	74 43                	je     5f582bc8 <_IDirectInput7AImpl_CreateDeviceEx@20+0x68>
    scan_mouse();
    scan_keyboard();
  }  

  /* Loop on all the devices to see if anyone matches the given GUID */
  for (i = 0; i < nrof_dinput_devices; i++) {
5f582b85:	31 db                	xor    %ebx,%ebx
5f582b87:	39 c3                	cmp    %eax,%ebx
5f582b89:	7d 30                	jge    5f582bbb <_IDirectInput7AImpl_CreateDeviceEx@20+0x5b>
5f582b8b:	90                   	nop    
5f582b8c:	8d 74 26 00          	lea    0x0(%esi),%esi
    HRESULT ret;
    if ((ret = dinput_devices[i]->create_deviceA(This, rguid, riid, (LPDIRECTINPUTDEVICEA*) pvOut)) == DI_OK)
5f582b90:	8b 04 9d 38 e0 58 5f 	mov    0x5f58e038(,%ebx,4),%eax
5f582b97:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f582b9a:	8b 55 08             	mov    0x8(%ebp),%edx
5f582b9d:	56                   	push   %esi
5f582b9e:	57                   	push   %edi
5f582b9f:	51                   	push   %ecx
5f582ba0:	52                   	push   %edx
5f582ba1:	ff 50 10             	call   *0x10(%eax)
5f582ba4:	83 c4 10             	add    $0x10,%esp
5f582ba7:	85 c0                	test   %eax,%eax
5f582ba9:	74 13                	je     5f582bbe <_IDirectInput7AImpl_CreateDeviceEx@20+0x5e>
      return DI_OK;

    if (ret == DIERR_NOINTERFACE)
5f582bab:	3d 02 40 00 80       	cmp    $0x80004002,%eax
5f582bb0:	74 2e                	je     5f582be0 <_IDirectInput7AImpl_CreateDeviceEx@20+0x80>
5f582bb2:	43                   	inc    %ebx
5f582bb3:	3b 1d 28 e0 58 5f    	cmp    0x5f58e028,%ebx
5f582bb9:	7c d5                	jl     5f582b90 <_IDirectInput7AImpl_CreateDeviceEx@20+0x30>
      ret_value = DIERR_NOINTERFACE;
  }

  return ret_value;
5f582bbb:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
}
5f582bbe:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582bc1:	5b                   	pop    %ebx
5f582bc2:	5e                   	pop    %esi
5f582bc3:	5f                   	pop    %edi
5f582bc4:	5d                   	pop    %ebp
5f582bc5:	c2 14 00             	ret    $0x14
5f582bc8:	e8 63 1a 00 00       	call   5f584630 <_scan_mouse>
5f582bcd:	e8 be 0b 00 00       	call   5f583790 <_scan_keyboard>
5f582bd2:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f582bd7:	eb ac                	jmp    5f582b85 <_IDirectInput7AImpl_CreateDeviceEx@20+0x25>
5f582bd9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f582be0:	c7 45 ec 02 40 00 80 	movl   $0x80004002,0xffffffec(%ebp)
5f582be7:	eb c9                	jmp    5f582bb2 <_IDirectInput7AImpl_CreateDeviceEx@20+0x52>
5f582be9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f582bf0 <_IDirectInput7WImpl_CreateDeviceEx@20>:

static HRESULT WINAPI IDirectInput7WImpl_CreateDeviceEx(LPDIRECTINPUT7W iface, REFGUID rguid,
							REFIID riid, LPVOID* pvOut, LPUNKNOWN lpUnknownOuter)
{
5f582bf0:	55                   	push   %ebp
5f582bf1:	89 e5                	mov    %esp,%ebp
5f582bf3:	57                   	push   %edi
5f582bf4:	56                   	push   %esi
5f582bf5:	53                   	push   %ebx
5f582bf6:	83 ec 0c             	sub    $0xc,%esp
  IDirectInputImpl *This = (IDirectInputImpl *)iface;
  HRESULT ret_value = DIERR_DEVICENOTREG;
5f582bf9:	c7 45 ec 54 01 04 80 	movl   $0x80040154,0xffffffec(%ebp)
5f582c00:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582c03:	8b 7d 10             	mov    0x10(%ebp),%edi
5f582c06:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
  int i;

  TRACE("(%p)->(%s, %s, %p, %p)\n", This, debugstr_guid(rguid), debugstr_guid(riid), pvOut, lpUnknownOuter);

  	if (nrof_dinput_devices==0){
5f582c09:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f582c0e:	8b 75 14             	mov    0x14(%ebp),%esi
5f582c11:	85 c0                	test   %eax,%eax
5f582c13:	74 43                	je     5f582c58 <_IDirectInput7WImpl_CreateDeviceEx@20+0x68>
	  scan_mouse();
	  scan_keyboard();
	}
  


  /* Loop on all the devices to see if anyone matches the given GUID */
  for (i = 0; i < nrof_dinput_devices; i++) {
5f582c15:	31 db                	xor    %ebx,%ebx
5f582c17:	39 c3                	cmp    %eax,%ebx
5f582c19:	7d 30                	jge    5f582c4b <_IDirectInput7WImpl_CreateDeviceEx@20+0x5b>
5f582c1b:	90                   	nop    
5f582c1c:	8d 74 26 00          	lea    0x0(%esi),%esi
    HRESULT ret;
    if ((ret = dinput_devices[i]->create_deviceW(This, rguid, riid, (LPDIRECTINPUTDEVICEW*) pvOut)) == DI_OK)
5f582c20:	8b 04 9d 38 e0 58 5f 	mov    0x5f58e038(,%ebx,4),%eax
5f582c27:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f582c2a:	8b 55 08             	mov    0x8(%ebp),%edx
5f582c2d:	56                   	push   %esi
5f582c2e:	57                   	push   %edi
5f582c2f:	51                   	push   %ecx
5f582c30:	52                   	push   %edx
5f582c31:	ff 50 14             	call   *0x14(%eax)
5f582c34:	83 c4 10             	add    $0x10,%esp
5f582c37:	85 c0                	test   %eax,%eax
5f582c39:	74 13                	je     5f582c4e <_IDirectInput7WImpl_CreateDeviceEx@20+0x5e>
      return DI_OK;

    if (ret == DIERR_NOINTERFACE)
5f582c3b:	3d 02 40 00 80       	cmp    $0x80004002,%eax
5f582c40:	74 2e                	je     5f582c70 <_IDirectInput7WImpl_CreateDeviceEx@20+0x80>
5f582c42:	43                   	inc    %ebx
5f582c43:	3b 1d 28 e0 58 5f    	cmp    0x5f58e028,%ebx
5f582c49:	7c d5                	jl     5f582c20 <_IDirectInput7WImpl_CreateDeviceEx@20+0x30>
      ret_value = DIERR_NOINTERFACE;
  }

  return ret_value;
5f582c4b:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
}
5f582c4e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582c51:	5b                   	pop    %ebx
5f582c52:	5e                   	pop    %esi
5f582c53:	5f                   	pop    %edi
5f582c54:	5d                   	pop    %ebp
5f582c55:	c2 14 00             	ret    $0x14
5f582c58:	e8 d3 19 00 00       	call   5f584630 <_scan_mouse>
5f582c5d:	e8 2e 0b 00 00       	call   5f583790 <_scan_keyboard>
5f582c62:	a1 28 e0 58 5f       	mov    0x5f58e028,%eax
5f582c67:	eb ac                	jmp    5f582c15 <_IDirectInput7WImpl_CreateDeviceEx@20+0x25>
5f582c69:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f582c70:	c7 45 ec 02 40 00 80 	movl   $0x80004002,0xffffffec(%ebp)
5f582c77:	eb c9                	jmp    5f582c42 <_IDirectInput7WImpl_CreateDeviceEx@20+0x52>
5f582c79:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f582c80 <_IDirectInput8AImpl_QueryInterface@12>:

static HRESULT WINAPI IDirectInput8AImpl_QueryInterface(LPDIRECTINPUT8A iface, REFIID riid, LPVOID *ppobj) {
5f582c80:	55                   	push   %ebp
      IDirectInputImpl *This = (IDirectInputImpl *)iface;

      TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
      if (IsEqualGUID(&IID_IUnknown,riid) ||
5f582c81:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582c86:	89 e5                	mov    %esp,%ebp
5f582c88:	57                   	push   %edi
5f582c89:	56                   	push   %esi
5f582c8a:	53                   	push   %ebx
5f582c8b:	83 ec 0c             	sub    $0xc,%esp
5f582c8e:	be 40 75 58 5f       	mov    $0x5f587540,%esi
5f582c93:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582c96:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f582c99:	fc                   	cld    
5f582c9a:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f582c9d:	89 c7                	mov    %eax,%edi
5f582c9f:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582ca1:	74 1e                	je     5f582cc1 <_IDirectInput8AImpl_QueryInterface@12+0x41>
5f582ca3:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582ca8:	be 20 c0 58 5f       	mov    $0x5f58c020,%esi
5f582cad:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f582cb0:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582cb2:	0f 97 c2             	seta   %dl
5f582cb5:	0f 92 c0             	setb   %al
          IsEqualGUID(&IID_IDirectInput8A,riid)) {
              IDirectInputAImpl_AddRef((LPDIRECTINPUT7A) iface);
              *ppobj = This;
              return 0;
      }
      TRACE("Unsupported interface !\n");
      return E_NOINTERFACE;
5f582cb8:	b9 02 40 00 80       	mov    $0x80004002,%ecx
5f582cbd:	38 c2                	cmp    %al,%dl
5f582cbf:	75 10                	jne    5f582cd1 <_IDirectInput8AImpl_QueryInterface@12+0x51>
5f582cc1:	83 ec 0c             	sub    $0xc,%esp
5f582cc4:	53                   	push   %ebx
5f582cc5:	e8 e6 fa ff ff       	call   5f5827b0 <_IDirectInputAImpl_AddRef@4>
5f582cca:	8b 45 10             	mov    0x10(%ebp),%eax
5f582ccd:	31 c9                	xor    %ecx,%ecx
5f582ccf:	89 18                	mov    %ebx,(%eax)
}
5f582cd1:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582cd4:	89 c8                	mov    %ecx,%eax
5f582cd6:	5b                   	pop    %ebx
5f582cd7:	5e                   	pop    %esi
5f582cd8:	5f                   	pop    %edi
5f582cd9:	5d                   	pop    %ebp
5f582cda:	c2 0c 00             	ret    $0xc
5f582cdd:	8d 76 00             	lea    0x0(%esi),%esi

5f582ce0 <_IDirectInput8WImpl_QueryInterface@12>:

static HRESULT WINAPI IDirectInput8WImpl_QueryInterface(LPDIRECTINPUT8W iface, REFIID riid, LPVOID *ppobj) {
5f582ce0:	55                   	push   %ebp
      IDirectInputImpl *This = (IDirectInputImpl *)iface;

      TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
      if (IsEqualGUID(&IID_IUnknown,riid) ||
5f582ce1:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582ce6:	89 e5                	mov    %esp,%ebp
5f582ce8:	57                   	push   %edi
5f582ce9:	56                   	push   %esi
5f582cea:	53                   	push   %ebx
5f582ceb:	83 ec 0c             	sub    $0xc,%esp
5f582cee:	be 40 75 58 5f       	mov    $0x5f587540,%esi
5f582cf3:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582cf6:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f582cf9:	fc                   	cld    
5f582cfa:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f582cfd:	89 c7                	mov    %eax,%edi
5f582cff:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582d01:	74 1e                	je     5f582d21 <_IDirectInput8WImpl_QueryInterface@12+0x41>
5f582d03:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582d08:	be 10 c0 58 5f       	mov    $0x5f58c010,%esi
5f582d0d:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f582d10:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582d12:	0f 97 c2             	seta   %dl
5f582d15:	0f 92 c0             	setb   %al
          IsEqualGUID(&IID_IDirectInput8W,riid)) {
              IDirectInputAImpl_AddRef((LPDIRECTINPUT7A) iface);
              *ppobj = This;
              return 0;
      }
      TRACE("Unsupported interface !\n");
      return E_NOINTERFACE;
5f582d18:	b9 02 40 00 80       	mov    $0x80004002,%ecx
5f582d1d:	38 c2                	cmp    %al,%dl
5f582d1f:	75 10                	jne    5f582d31 <_IDirectInput8WImpl_QueryInterface@12+0x51>
5f582d21:	83 ec 0c             	sub    $0xc,%esp
5f582d24:	53                   	push   %ebx
5f582d25:	e8 86 fa ff ff       	call   5f5827b0 <_IDirectInputAImpl_AddRef@4>
5f582d2a:	8b 45 10             	mov    0x10(%ebp),%eax
5f582d2d:	31 c9                	xor    %ecx,%ecx
5f582d2f:	89 18                	mov    %ebx,(%eax)
}
5f582d31:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582d34:	89 c8                	mov    %ecx,%eax
5f582d36:	5b                   	pop    %ebx
5f582d37:	5e                   	pop    %esi
5f582d38:	5f                   	pop    %edi
5f582d39:	5d                   	pop    %ebp
5f582d3a:	c2 0c 00             	ret    $0xc
5f582d3d:	8d 76 00             	lea    0x0(%esi),%esi

5f582d40 <_IDirectInput8AImpl_EnumDevicesBySemantics@24>:

static HRESULT WINAPI IDirectInput8AImpl_EnumDevicesBySemantics(
      LPDIRECTINPUT8A iface, LPCSTR ptszUserName, LPDIACTIONFORMATA lpdiActionFormat,
      LPDIENUMDEVICESBYSEMANTICSCBA lpCallback,
      LPVOID pvRef, DWORD dwFlags
)
{
5f582d40:	55                   	push   %ebp
5f582d41:	89 e5                	mov    %esp,%ebp
5f582d43:	52                   	push   %edx
5f582d44:	52                   	push   %edx
      IDirectInputImpl *This = (IDirectInputImpl *)iface;

      FIXME("(this=%p,%s,%p,%p,%p,%04lx): stub\n", This, ptszUserName, lpdiActionFormat,
5f582d45:	68 e0 ae 58 5f       	push   $0x5f58aee0
5f582d4a:	68 1f 02 00 00       	push   $0x21f
5f582d4f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582d54:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582d59:	e8 12 48 00 00       	call   5f587570 <_DbgPrint>
5f582d5e:	83 c4 0c             	add    $0xc,%esp
5f582d61:	8b 45 1c             	mov    0x1c(%ebp),%eax
5f582d64:	50                   	push   %eax
5f582d65:	8b 45 18             	mov    0x18(%ebp),%eax
5f582d68:	50                   	push   %eax
5f582d69:	8b 45 14             	mov    0x14(%ebp),%eax
5f582d6c:	50                   	push   %eax
5f582d6d:	8b 45 10             	mov    0x10(%ebp),%eax
5f582d70:	50                   	push   %eax
5f582d71:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582d74:	50                   	push   %eax
5f582d75:	8b 45 08             	mov    0x8(%ebp),%eax
5f582d78:	50                   	push   %eax
5f582d79:	68 0c af 58 5f       	push   $0x5f58af0c
5f582d7e:	e8 ed 47 00 00       	call   5f587570 <_DbgPrint>
            lpCallback, pvRef, dwFlags);
      return 0;
}
5f582d83:	31 c0                	xor    %eax,%eax
5f582d85:	c9                   	leave  
5f582d86:	c2 18 00             	ret    $0x18
5f582d89:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f582d90 <_IDirectInput8WImpl_EnumDevicesBySemantics@24>:

static HRESULT WINAPI IDirectInput8WImpl_EnumDevicesBySemantics(
      LPDIRECTINPUT8W iface, LPCWSTR ptszUserName, LPDIACTIONFORMATW lpdiActionFormat,
      LPDIENUMDEVICESBYSEMANTICSCBW lpCallback,
      LPVOID pvRef, DWORD dwFlags
)
{
5f582d90:	55                   	push   %ebp
5f582d91:	89 e5                	mov    %esp,%ebp
5f582d93:	51                   	push   %ecx
5f582d94:	51                   	push   %ecx
      IDirectInputImpl *This = (IDirectInputImpl *)iface;

      FIXME("(this=%p,%s,%p,%p,%p,%04lx): stub\n", This, debugstr_w(ptszUserName), lpdiActionFormat,
5f582d95:	68 40 af 58 5f       	push   $0x5f58af40
5f582d9a:	68 2c 02 00 00       	push   $0x22c
5f582d9f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582da4:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582da9:	e8 c2 47 00 00       	call   5f587570 <_DbgPrint>
inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
inline static const char *debugstr_a( const char *s )  { return wine_dbgstr_an( s, 80 ); }
inline static const char *debugstr_w( const wchar_t *s ) { return wine_dbgstr_wn( s, 80 ); }
5f582dae:	58                   	pop    %eax
5f582daf:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582db2:	5a                   	pop    %edx
5f582db3:	6a 50                	push   $0x50
5f582db5:	50                   	push   %eax
5f582db6:	e8 65 34 00 00       	call   5f586220 <_wine_dbgstr_wn>
5f582dbb:	83 c4 0c             	add    $0xc,%esp
5f582dbe:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5f582dc1:	8b 55 18             	mov    0x18(%ebp),%edx
5f582dc4:	51                   	push   %ecx
5f582dc5:	8b 4d 14             	mov    0x14(%ebp),%ecx
5f582dc8:	52                   	push   %edx
5f582dc9:	8b 55 10             	mov    0x10(%ebp),%edx
5f582dcc:	51                   	push   %ecx
5f582dcd:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f582dd0:	52                   	push   %edx
5f582dd1:	50                   	push   %eax
5f582dd2:	51                   	push   %ecx
5f582dd3:	68 0c af 58 5f       	push   $0x5f58af0c
5f582dd8:	e8 93 47 00 00       	call   5f587570 <_DbgPrint>
            lpCallback, pvRef, dwFlags);
      return 0;
}
5f582ddd:	31 c0                	xor    %eax,%eax
5f582ddf:	c9                   	leave  
5f582de0:	c2 18 00             	ret    $0x18
5f582de3:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f582de9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582df0 <_IDirectInput8AImpl_ConfigureDevices@20>:

static HRESULT WINAPI IDirectInput8AImpl_ConfigureDevices(
      LPDIRECTINPUT8A iface, LPDICONFIGUREDEVICESCALLBACK lpdiCallback,
      LPDICONFIGUREDEVICESPARAMSA lpdiCDParams, DWORD dwFlags, LPVOID pvRefData
)
{
5f582df0:	55                   	push   %ebp
5f582df1:	89 e5                	mov    %esp,%ebp
5f582df3:	51                   	push   %ecx
5f582df4:	51                   	push   %ecx
      IDirectInputImpl *This = (IDirectInputImpl *)iface;

      FIXME("(this=%p,%p,%p,%04lx,%p): stub\n", This, lpdiCallback, lpdiCDParams,
5f582df5:	68 80 af 58 5f       	push   $0x5f58af80
5f582dfa:	68 38 02 00 00       	push   $0x238
5f582dff:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582e04:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582e09:	e8 62 47 00 00       	call   5f587570 <_DbgPrint>
5f582e0e:	58                   	pop    %eax
5f582e0f:	8b 45 18             	mov    0x18(%ebp),%eax
5f582e12:	5a                   	pop    %edx
5f582e13:	50                   	push   %eax
5f582e14:	8b 45 14             	mov    0x14(%ebp),%eax
5f582e17:	50                   	push   %eax
5f582e18:	8b 45 10             	mov    0x10(%ebp),%eax
5f582e1b:	50                   	push   %eax
5f582e1c:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582e1f:	50                   	push   %eax
5f582e20:	8b 45 08             	mov    0x8(%ebp),%eax
5f582e23:	50                   	push   %eax
5f582e24:	68 a4 af 58 5f       	push   $0x5f58afa4
5f582e29:	e8 42 47 00 00       	call   5f587570 <_DbgPrint>
            dwFlags, pvRefData);
      return 0;
}
5f582e2e:	31 c0                	xor    %eax,%eax
5f582e30:	c9                   	leave  
5f582e31:	c2 14 00             	ret    $0x14
5f582e34:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f582e3a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f582e40 <_IDirectInput8WImpl_ConfigureDevices@20>:

static HRESULT WINAPI IDirectInput8WImpl_ConfigureDevices(
      LPDIRECTINPUT8W iface, LPDICONFIGUREDEVICESCALLBACK lpdiCallback,
      LPDICONFIGUREDEVICESPARAMSW lpdiCDParams, DWORD dwFlags, LPVOID pvRefData
)
{
5f582e40:	55                   	push   %ebp
5f582e41:	89 e5                	mov    %esp,%ebp
5f582e43:	51                   	push   %ecx
5f582e44:	51                   	push   %ecx
      IDirectInputImpl *This = (IDirectInputImpl *)iface;

      FIXME("(this=%p,%p,%p,%04lx,%p): stub\n", This, lpdiCallback, lpdiCDParams,
5f582e45:	68 e0 af 58 5f       	push   $0x5f58afe0
5f582e4a:	68 44 02 00 00       	push   $0x244
5f582e4f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582e54:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582e59:	e8 12 47 00 00       	call   5f587570 <_DbgPrint>
5f582e5e:	58                   	pop    %eax
5f582e5f:	8b 45 18             	mov    0x18(%ebp),%eax
5f582e62:	5a                   	pop    %edx
5f582e63:	50                   	push   %eax
5f582e64:	8b 45 14             	mov    0x14(%ebp),%eax
5f582e67:	50                   	push   %eax
5f582e68:	8b 45 10             	mov    0x10(%ebp),%eax
5f582e6b:	50                   	push   %eax
5f582e6c:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582e6f:	50                   	push   %eax
5f582e70:	8b 45 08             	mov    0x8(%ebp),%eax
5f582e73:	50                   	push   %eax
5f582e74:	68 a4 af 58 5f       	push   $0x5f58afa4
5f582e79:	e8 f2 46 00 00       	call   5f587570 <_DbgPrint>
            dwFlags, pvRefData);
      return 0;
}
5f582e7e:	31 c0                	xor    %eax,%eax
5f582e80:	c9                   	leave  
5f582e81:	c2 14 00             	ret    $0x14
5f582e84:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f582e8a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f582e90 <_DICF_QueryInterface@12>:

#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
# define XCAST(fun)   (typeof(ddi7avt.fun))
#else
# define XCAST(fun)	(void*)
#endif

static IDirectInput7AVtbl ddi7avt = {
	XCAST(QueryInterface)IDirectInputAImpl_QueryInterface,
	XCAST(AddRef)IDirectInputAImpl_AddRef,
	XCAST(Release)IDirectInputAImpl_Release,
	XCAST(CreateDevice)IDirectInputAImpl_CreateDevice,
	XCAST(EnumDevices)IDirectInputAImpl_EnumDevices,
	XCAST(GetDeviceStatus)IDirectInputAImpl_GetDeviceStatus,
	XCAST(RunControlPanel)IDirectInputAImpl_RunControlPanel,
	XCAST(Initialize)IDirectInputAImpl_Initialize,
	XCAST(FindDevice)IDirectInput2AImpl_FindDevice,
	XCAST(CreateDeviceEx)IDirectInput7AImpl_CreateDeviceEx
};

#undef XCAST
#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
# define XCAST(fun)   (typeof(ddi7wvt.fun))
#else
# define XCAST(fun)	(void*)
#endif

static IDirectInput7WVtbl ddi7wvt = {
	XCAST(QueryInterface)IDirectInputWImpl_QueryInterface,
	XCAST(AddRef)IDirectInputAImpl_AddRef,
	XCAST(Release)IDirectInputAImpl_Release,
	XCAST(CreateDevice)IDirectInputWImpl_CreateDevice,
	XCAST(EnumDevices)IDirectInputWImpl_EnumDevices,
	XCAST(GetDeviceStatus)IDirectInputAImpl_GetDeviceStatus,
	XCAST(RunControlPanel)IDirectInputAImpl_RunControlPanel,
	XCAST(Initialize)IDirectInputAImpl_Initialize,
	XCAST(FindDevice)IDirectInput2WImpl_FindDevice,
	XCAST(CreateDeviceEx)IDirectInput7WImpl_CreateDeviceEx
};
#undef XCAST

#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
# define XCAST(fun)	(typeof(ddi8avt.fun))
#else
# define XCAST(fun)	(void*)
#endif

static IDirectInput8AVtbl ddi8avt = {
	XCAST(QueryInterface)IDirectInput8AImpl_QueryInterface,
	XCAST(AddRef)IDirectInputAImpl_AddRef,
	XCAST(Release)IDirectInputAImpl_Release,
	XCAST(CreateDevice)IDirectInputAImpl_CreateDevice,
	XCAST(EnumDevices)IDirectInputAImpl_EnumDevices,
	XCAST(GetDeviceStatus)IDirectInputAImpl_GetDeviceStatus,
	XCAST(RunControlPanel)IDirectInputAImpl_RunControlPanel,
	XCAST(Initialize)IDirectInputAImpl_Initialize,
	XCAST(FindDevice)IDirectInput2AImpl_FindDevice,
	XCAST(EnumDevicesBySemantics)IDirectInput8AImpl_EnumDevicesBySemantics,
	XCAST(ConfigureDevices)IDirectInput8AImpl_ConfigureDevices
};
#undef XCAST

#if !defined(__STRICT_ANSI__) && defined(__GNUC__)
# define XCAST(fun)	(typeof(ddi8wvt.fun))
#else
# define XCAST(fun)	(void*)
#endif
static IDirectInput8WVtbl ddi8wvt = {
	XCAST(QueryInterface)IDirectInput8WImpl_QueryInterface,
	XCAST(AddRef)IDirectInputAImpl_AddRef,
	XCAST(Release)IDirectInputAImpl_Release,
	XCAST(CreateDevice)IDirectInputWImpl_CreateDevice,
	XCAST(EnumDevices)IDirectInputWImpl_EnumDevices,
	XCAST(GetDeviceStatus)IDirectInputAImpl_GetDeviceStatus,
	XCAST(RunControlPanel)IDirectInputAImpl_RunControlPanel,
	XCAST(Initialize)IDirectInputAImpl_Initialize,
	XCAST(FindDevice)IDirectInput2WImpl_FindDevice,
	XCAST(EnumDevicesBySemantics)IDirectInput8WImpl_EnumDevicesBySemantics,
	XCAST(ConfigureDevices)IDirectInput8WImpl_ConfigureDevices
};
#undef XCAST

/*******************************************************************************
 * DirectInput ClassFactory
 */
typedef struct
{
    /* IUnknown fields */
    IClassFactoryVtbl          *lpVtbl;
    DWORD                       ref;
} IClassFactoryImpl;

static HRESULT WINAPI DICF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
5f582e90:	55                   	push   %ebp
5f582e91:	89 e5                	mov    %esp,%ebp
5f582e93:	50                   	push   %eax
5f582e94:	50                   	push   %eax
	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;

	FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
5f582e95:	68 04 b0 58 5f       	push   $0x5f58b004
5f582e9a:	68 a7 02 00 00       	push   $0x2a7
5f582e9f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582ea4:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582ea9:	e8 c2 46 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f582eae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f582eb1:	58                   	pop    %eax
5f582eb2:	51                   	push   %ecx
5f582eb3:	e8 b8 32 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f582eb8:	83 c4 10             	add    $0x10,%esp
5f582ebb:	8b 55 10             	mov    0x10(%ebp),%edx
5f582ebe:	52                   	push   %edx
5f582ebf:	50                   	push   %eax
5f582ec0:	8b 45 08             	mov    0x8(%ebp),%eax
5f582ec3:	50                   	push   %eax
5f582ec4:	68 18 b0 58 5f       	push   $0x5f58b018
5f582ec9:	e8 a2 46 00 00       	call   5f587570 <_DbgPrint>
	return E_NOINTERFACE;
}
5f582ece:	b8 02 40 00 80       	mov    $0x80004002,%eax
5f582ed3:	c9                   	leave  
5f582ed4:	c2 0c 00             	ret    $0xc
5f582ed7:	89 f6                	mov    %esi,%esi
5f582ed9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582ee0 <_DICF_AddRef@4>:

static ULONG WINAPI DICF_AddRef(LPCLASSFACTORY iface) {
5f582ee0:	55                   	push   %ebp
5f582ee1:	89 e5                	mov    %esp,%ebp
	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
	return InterlockedIncrement(&(This->ref));
5f582ee3:	8b 45 08             	mov    0x8(%ebp),%eax
5f582ee6:	83 c0 04             	add    $0x4,%eax
5f582ee9:	89 45 08             	mov    %eax,0x8(%ebp)
}
5f582eec:	c9                   	leave  
5f582eed:	e9 6e 38 00 00       	jmp    5f586760 <_InterlockedIncrement@4>
5f582ef2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f582ef9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582f00 <_DICF_Release@4>:

static ULONG WINAPI DICF_Release(LPCLASSFACTORY iface) {
5f582f00:	55                   	push   %ebp
5f582f01:	89 e5                	mov    %esp,%ebp
	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
	/* static class, won't be  freed */
	return InterlockedDecrement(&(This->ref));
5f582f03:	8b 45 08             	mov    0x8(%ebp),%eax
5f582f06:	83 c0 04             	add    $0x4,%eax
5f582f09:	89 45 08             	mov    %eax,0x8(%ebp)
}
5f582f0c:	c9                   	leave  
5f582f0d:	e9 3e 38 00 00       	jmp    5f586750 <_InterlockedDecrement@4>
5f582f12:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f582f19:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f582f20 <_DICF_CreateInstance@16>:

static HRESULT WINAPI DICF_CreateInstance(
	LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj
) {
5f582f20:	55                   	push   %ebp
	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;

	TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
	if ( IsEqualGUID( &IID_IDirectInputA, riid ) ||
5f582f21:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582f26:	89 e5                	mov    %esp,%ebp
5f582f28:	57                   	push   %edi
5f582f29:	56                   	push   %esi
5f582f2a:	53                   	push   %ebx
5f582f2b:	83 ec 0c             	sub    $0xc,%esp
5f582f2e:	be 00 c0 58 5f       	mov    $0x5f58c000,%esi
5f582f33:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f582f36:	fc                   	cld    
5f582f37:	89 df                	mov    %ebx,%edi
5f582f39:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582f3b:	74 10                	je     5f582f4d <_DICF_CreateInstance@16+0x2d>
5f582f3d:	be 20 bf 58 5f       	mov    $0x5f58bf20,%esi
5f582f42:	89 df                	mov    %ebx,%edi
5f582f44:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582f49:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582f4b:	75 23                	jne    5f582f70 <_DICF_CreateInstance@16+0x50>
	     IsEqualGUID( &IID_IDirectInputW, riid ) ||
	     IsEqualGUID( &IID_IDirectInput2A, riid ) ||
	     IsEqualGUID( &IID_IDirectInput2W, riid ) ||
	     IsEqualGUID( &IID_IDirectInput7A, riid ) ||
	     IsEqualGUID( &IID_IDirectInput7W, riid ) ||
	     IsEqualGUID( &IID_IDirectInput8A, riid ) ||
	     IsEqualGUID( &IID_IDirectInput8W, riid ) ) {
		/* FIXME: reuse already created dinput if present? */
		return DirectInputCreateEx(0,0,riid,ppobj,pOuter);
5f582f4d:	83 ec 0c             	sub    $0xc,%esp
5f582f50:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f582f53:	8b 75 14             	mov    0x14(%ebp),%esi
5f582f56:	57                   	push   %edi
5f582f57:	56                   	push   %esi
5f582f58:	53                   	push   %ebx
5f582f59:	6a 00                	push   $0x0
5f582f5b:	6a 00                	push   $0x0
5f582f5d:	e8 ee f4 ff ff       	call   5f582450 <_DirectInputCreateEx@20>
	}

	FIXME("(%p,%p,%s,%p) Interface not found!\n",This,pOuter,debugstr_guid(riid),ppobj);	
	return E_NOINTERFACE;
}
5f582f62:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f582f65:	5b                   	pop    %ebx
5f582f66:	5e                   	pop    %esi
5f582f67:	5f                   	pop    %edi
5f582f68:	5d                   	pop    %ebp
5f582f69:	c2 10 00             	ret    $0x10
5f582f6c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f582f70:	be 60 c0 58 5f       	mov    $0x5f58c060,%esi
5f582f75:	89 df                	mov    %ebx,%edi
5f582f77:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582f7c:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582f7e:	74 cd                	je     5f582f4d <_DICF_CreateInstance@16+0x2d>
5f582f80:	be 50 c0 58 5f       	mov    $0x5f58c050,%esi
5f582f85:	89 df                	mov    %ebx,%edi
5f582f87:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582f8c:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582f8e:	74 bd                	je     5f582f4d <_DICF_CreateInstance@16+0x2d>
5f582f90:	be 40 c0 58 5f       	mov    $0x5f58c040,%esi
5f582f95:	89 df                	mov    %ebx,%edi
5f582f97:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582f9c:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582f9e:	74 ad                	je     5f582f4d <_DICF_CreateInstance@16+0x2d>
5f582fa0:	be 30 c0 58 5f       	mov    $0x5f58c030,%esi
5f582fa5:	89 df                	mov    %ebx,%edi
5f582fa7:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582fac:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582fae:	74 9d                	je     5f582f4d <_DICF_CreateInstance@16+0x2d>
5f582fb0:	be 20 c0 58 5f       	mov    $0x5f58c020,%esi
5f582fb5:	89 df                	mov    %ebx,%edi
5f582fb7:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582fbc:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582fbe:	74 8d                	je     5f582f4d <_DICF_CreateInstance@16+0x2d>
5f582fc0:	be 10 c0 58 5f       	mov    $0x5f58c010,%esi
5f582fc5:	89 df                	mov    %ebx,%edi
5f582fc7:	b9 10 00 00 00       	mov    $0x10,%ecx
5f582fcc:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f582fce:	0f 84 79 ff ff ff    	je     5f582f4d <_DICF_CreateInstance@16+0x2d>
5f582fd4:	68 2d b0 58 5f       	push   $0x5f58b02d
5f582fd9:	68 c8 02 00 00       	push   $0x2c8
5f582fde:	68 00 ad 58 5f       	push   $0x5f58ad00
5f582fe3:	68 22 ae 58 5f       	push   $0x5f58ae22
5f582fe8:	e8 83 45 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f582fed:	89 1c 24             	mov    %ebx,(%esp)
5f582ff0:	e8 7b 31 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f582ff5:	59                   	pop    %ecx
5f582ff6:	8b 55 14             	mov    0x14(%ebp),%edx
5f582ff9:	52                   	push   %edx
5f582ffa:	50                   	push   %eax
5f582ffb:	8b 45 0c             	mov    0xc(%ebp),%eax
5f582ffe:	50                   	push   %eax
5f582fff:	8b 45 08             	mov    0x8(%ebp),%eax
5f583002:	50                   	push   %eax
5f583003:	68 44 b0 58 5f       	push   $0x5f58b044
5f583008:	e8 63 45 00 00       	call   5f587570 <_DbgPrint>
5f58300d:	b8 02 40 00 80       	mov    $0x80004002,%eax
5f583012:	e9 4b ff ff ff       	jmp    5f582f62 <_DICF_CreateInstance@16+0x42>
5f583017:	89 f6                	mov    %esi,%esi
5f583019:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f583020 <_DICF_LockServer@8>:

static HRESULT WINAPI DICF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
5f583020:	55                   	push   %ebp
5f583021:	89 e5                	mov    %esp,%ebp
5f583023:	50                   	push   %eax
5f583024:	50                   	push   %eax
	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
	FIXME("(%p)->(%d),stub!\n",This,dolock);
5f583025:	68 68 b0 58 5f       	push   $0x5f58b068
5f58302a:	68 ce 02 00 00       	push   $0x2ce
5f58302f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f583034:	68 22 ae 58 5f       	push   $0x5f58ae22
5f583039:	e8 32 45 00 00       	call   5f587570 <_DbgPrint>
5f58303e:	83 c4 0c             	add    $0xc,%esp
5f583041:	8b 45 0c             	mov    0xc(%ebp),%eax
5f583044:	50                   	push   %eax
5f583045:	8b 45 08             	mov    0x8(%ebp),%eax
5f583048:	50                   	push   %eax
5f583049:	68 78 b0 58 5f       	push   $0x5f58b078
5f58304e:	e8 1d 45 00 00       	call   5f587570 <_DbgPrint>
	return S_OK;
}
5f583053:	31 c0                	xor    %eax,%eax
5f583055:	c9                   	leave  
5f583056:	c2 08 00             	ret    $0x8
5f583059:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f583060 <_DINPUT_DllCanUnloadNow@0>:

static IClassFactoryVtbl DICF_Vtbl = {
	DICF_QueryInterface,
	DICF_AddRef,
	DICF_Release,
	DICF_CreateInstance,
	DICF_LockServer
};
static IClassFactoryImpl DINPUT_CF = {&DICF_Vtbl, 1 };

/***********************************************************************
 *		DllCanUnloadNow (DINPUT.@)
 */
HRESULT WINAPI DINPUT_DllCanUnloadNow(void)
{
5f583060:	55                   	push   %ebp
5f583061:	89 e5                	mov    %esp,%ebp
5f583063:	50                   	push   %eax
5f583064:	50                   	push   %eax
    FIXME("(void): stub\n");
5f583065:	68 8a b0 58 5f       	push   $0x5f58b08a
5f58306a:	68 e0 02 00 00       	push   $0x2e0
5f58306f:	68 00 ad 58 5f       	push   $0x5f58ad00
5f583074:	68 22 ae 58 5f       	push   $0x5f58ae22
5f583079:	e8 f2 44 00 00       	call   5f587570 <_DbgPrint>
5f58307e:	c7 04 24 a1 b0 58 5f 	movl   $0x5f58b0a1,(%esp)
5f583085:	e8 e6 44 00 00       	call   5f587570 <_DbgPrint>

    return S_FALSE;
}
5f58308a:	b8 01 00 00 00       	mov    $0x1,%eax
5f58308f:	c9                   	leave  
5f583090:	c3                   	ret    
5f583091:	eb 0d                	jmp    5f5830a0 <_DINPUT_DllGetClassObject@12>
5f583093:	90                   	nop    
5f583094:	90                   	nop    
5f583095:	90                   	nop    
5f583096:	90                   	nop    
5f583097:	90                   	nop    
5f583098:	90                   	nop    
5f583099:	90                   	nop    
5f58309a:	90                   	nop    
5f58309b:	90                   	nop    
5f58309c:	90                   	nop    
5f58309d:	90                   	nop    
5f58309e:	90                   	nop    
5f58309f:	90                   	nop    

5f5830a0 <_DINPUT_DllGetClassObject@12>:

/***********************************************************************
 *		DllGetClassObject (DINPUT.@)
 */
HRESULT WINAPI DINPUT_DllGetClassObject(REFCLSID rclsid, REFIID riid,
					LPVOID *ppv)
{
5f5830a0:	55                   	push   %ebp
    TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
    if ( IsEqualCLSID( &IID_IClassFactory, riid ) ) {
5f5830a1:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5830a6:	89 e5                	mov    %esp,%ebp
5f5830a8:	57                   	push   %edi
5f5830a9:	56                   	push   %esi
5f5830aa:	53                   	push   %ebx
5f5830ab:	83 ec 0c             	sub    $0xc,%esp
5f5830ae:	be 30 75 58 5f       	mov    $0x5f587530,%esi
5f5830b3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f5830b6:	fc                   	cld    
5f5830b7:	89 df                	mov    %ebx,%edi
5f5830b9:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5830bb:	75 25                	jne    5f5830e2 <_DINPUT_DllGetClassObject@12+0x42>
    	*ppv = (LPVOID)&DINPUT_CF;
5f5830bd:	8b 45 10             	mov    0x10(%ebp),%eax
	IClassFactory_AddRef((IClassFactory*)*ppv);
5f5830c0:	83 ec 0c             	sub    $0xc,%esp
5f5830c3:	c7 00 40 8e 58 5f    	movl   $0x5f588e40,(%eax)
5f5830c9:	a1 40 8e 58 5f       	mov    0x5f588e40,%eax
5f5830ce:	68 40 8e 58 5f       	push   $0x5f588e40
5f5830d3:	ff 50 04             	call   *0x4(%eax)
    return S_OK;
5f5830d6:	31 c0                	xor    %eax,%eax
    }

    FIXME("(%s,%s,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
    return CLASS_E_CLASSNOTAVAILABLE;
}
5f5830d8:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5830db:	5b                   	pop    %ebx
5f5830dc:	5e                   	pop    %esi
5f5830dd:	5f                   	pop    %edi
5f5830de:	5d                   	pop    %ebp
5f5830df:	c2 0c 00             	ret    $0xc
5f5830e2:	68 af b0 58 5f       	push   $0x5f58b0af
5f5830e7:	68 f2 02 00 00       	push   $0x2f2
5f5830ec:	68 00 ad 58 5f       	push   $0x5f58ad00
5f5830f1:	68 22 ae 58 5f       	push   $0x5f58ae22
5f5830f6:	e8 75 44 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f5830fb:	89 1c 24             	mov    %ebx,(%esp)
5f5830fe:	e8 6d 30 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f583103:	5b                   	pop    %ebx
5f583104:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f583107:	89 c3                	mov    %eax,%ebx
5f583109:	51                   	push   %ecx
5f58310a:	e8 61 30 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f58310f:	83 c4 10             	add    $0x10,%esp
5f583112:	8b 55 10             	mov    0x10(%ebp),%edx
5f583115:	52                   	push   %edx
5f583116:	53                   	push   %ebx
5f583117:	50                   	push   %eax
5f583118:	68 c8 b0 58 5f       	push   $0x5f58b0c8
5f58311d:	e8 4e 44 00 00       	call   5f587570 <_DbgPrint>
5f583122:	b8 11 01 04 80       	mov    $0x80040111,%eax
5f583127:	eb af                	jmp    5f5830d8 <_DINPUT_DllGetClassObject@12+0x38>
5f583129:	90                   	nop    
5f58312a:	90                   	nop    
5f58312b:	90                   	nop    
5f58312c:	90                   	nop    
5f58312d:	90                   	nop    
5f58312e:	90                   	nop    
5f58312f:	90                   	nop    

5f583130 <_reactos_input_keyboard>:
5f583130:	55                   	push   %ebp
5f583131:	89 e5                	mov    %esp,%ebp
5f583133:	57                   	push   %edi
5f583134:	56                   	push   %esi
5f583135:	53                   	push   %ebx
5f583136:	81 ec 40 01 00 00    	sub    $0x140,%esp
5f58313c:	8d 85 c8 fe ff ff    	lea    0xfffffec8(%ebp),%eax
5f583142:	83 cb ff             	or     $0xffffffff,%ebx
5f583145:	68 00 01 00 00       	push   $0x100
5f58314a:	68 50 e0 58 5f       	push   $0x5f58e050
5f58314f:	50                   	push   %eax
5f583150:	e8 0b 44 00 00       	call   5f587560 <_memcpy>
5f583155:	c7 04 24 50 e0 58 5f 	movl   $0x5f58e050,(%esp)
5f58315c:	e8 5f 34 00 00       	call   5f5865c0 <_GetKeyboardState@4>
5f583161:	31 d2                	xor    %edx,%edx
5f583163:	83 c4 0c             	add    $0xc,%esp
5f583166:	8a 82 50 e0 58 5f    	mov    0x5f58e050(%edx),%al
5f58316c:	38 84 2a c8 fe ff ff 	cmp    %al,0xfffffec8(%edx,%ebp,1)
5f583173:	74 02                	je     5f583177 <_reactos_input_keyboard+0x47>
5f583175:	89 d3                	mov    %edx,%ebx
5f583177:	42                   	inc    %edx
5f583178:	81 fa fe 00 00 00    	cmp    $0xfe,%edx
5f58317e:	7e e6                	jle    5f583166 <_reactos_input_keyboard+0x36>
5f583180:	83 fb ff             	cmp    $0xffffffff,%ebx
5f583183:	74 75                	je     5f5831fa <_reactos_input_keyboard+0xca>
5f583185:	8b 3d 70 ea 58 5f    	mov    0x5f58ea70,%edi
5f58318b:	8b 77 28             	mov    0x28(%edi),%esi
5f58318e:	85 f6                	test   %esi,%esi
5f583190:	74 68                	je     5f5831fa <_reactos_input_keyboard+0xca>
5f583192:	8b 47 30             	mov    0x30(%edi),%eax
5f583195:	8b 4f 18             	mov    0x18(%edi),%ecx
5f583198:	89 85 c4 fe ff ff    	mov    %eax,0xfffffec4(%ebp)
5f58319e:	8b 47 2c             	mov    0x2c(%edi),%eax
5f5831a1:	8b 95 c4 fe ff ff    	mov    0xfffffec4(%ebp),%edx
5f5831a7:	89 85 c0 fe ff ff    	mov    %eax,0xfffffec0(%ebp)
5f5831ad:	01 c2                	add    %eax,%edx
5f5831af:	89 d0                	mov    %edx,%eax
5f5831b1:	c1 fa 1f             	sar    $0x1f,%edx
5f5831b4:	f7 7f 24             	idivl  0x24(%edi)
5f5831b7:	31 c0                	xor    %eax,%eax
5f5831b9:	8d 14 92             	lea    (%edx,%edx,4),%edx
5f5831bc:	88 d8                	mov    %bl,%al
5f5831be:	c1 e2 02             	shl    $0x2,%edx
5f5831c1:	89 04 32             	mov    %eax,(%edx,%esi,1)
5f5831c4:	31 c0                	xor    %eax,%eax
5f5831c6:	8a 83 50 e0 58 5f    	mov    0x5f58e050(%ebx),%al
5f5831cc:	c7 44 32 08 0a 00 00 	movl   $0xa,0x8(%edx,%esi,1)
5f5831d3:	00 
5f5831d4:	89 44 32 04          	mov    %eax,0x4(%edx,%esi,1)
5f5831d8:	8b 59 08             	mov    0x8(%ecx),%ebx
5f5831db:	8d 43 01             	lea    0x1(%ebx),%eax
5f5831de:	89 41 08             	mov    %eax,0x8(%ecx)
5f5831e1:	8b 47 24             	mov    0x24(%edi),%eax
5f5831e4:	89 5c 32 0c          	mov    %ebx,0xc(%edx,%esi,1)
5f5831e8:	39 85 c0 fe ff ff    	cmp    %eax,0xfffffec0(%ebp)
5f5831ee:	74 12                	je     5f583202 <_reactos_input_keyboard+0xd2>
5f5831f0:	8b 85 c0 fe ff ff    	mov    0xfffffec0(%ebp),%eax
5f5831f6:	40                   	inc    %eax
5f5831f7:	89 47 2c             	mov    %eax,0x2c(%edi)
5f5831fa:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5831fd:	5b                   	pop    %ebx
5f5831fe:	5e                   	pop    %esi
5f5831ff:	5f                   	pop    %edi
5f583200:	5d                   	pop    %ebp
5f583201:	c3                   	ret    
5f583202:	8b 95 c4 fe ff ff    	mov    0xfffffec4(%ebp),%edx
5f583208:	c7 47 34 01 00 00 00 	movl   $0x1,0x34(%edi)
5f58320f:	42                   	inc    %edx
5f583210:	89 d0                	mov    %edx,%eax
5f583212:	c1 fa 1f             	sar    $0x1f,%edx
5f583215:	f7 bd c0 fe ff ff    	idivl  0xfffffec0(%ebp)
5f58321b:	89 57 30             	mov    %edx,0x30(%edi)
5f58321e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f583221:	5b                   	pop    %ebx
5f583222:	5e                   	pop    %esi
5f583223:	5f                   	pop    %edi
5f583224:	5d                   	pop    %ebp
5f583225:	c3                   	ret    
5f583226:	8d 76 00             	lea    0x0(%esi),%esi
5f583229:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f583230 <_fill_keyboard_dideviceinstanceA>:
5f583230:	55                   	push   %ebp
5f583231:	89 e5                	mov    %esp,%ebp
5f583233:	57                   	push   %edi
5f583234:	56                   	push   %esi
5f583235:	53                   	push   %ebx
5f583236:	81 ec 6c 02 00 00    	sub    $0x26c,%esp
5f58323c:	89 c3                	mov    %eax,%ebx
5f58323e:	8b 30                	mov    (%eax),%esi
5f583240:	89 df                	mov    %ebx,%edi
5f583242:	fc                   	cld    
5f583243:	89 f1                	mov    %esi,%ecx
5f583245:	31 c0                	xor    %eax,%eax
5f583247:	c1 e9 02             	shr    $0x2,%ecx
5f58324a:	89 95 94 fd ff ff    	mov    %edx,0xfffffd94(%ebp)
5f583250:	f7 c6 02 00 00 00    	test   $0x2,%esi
5f583256:	f3 ab                	repz stos %eax,%es:(%edi)
5f583258:	74 08                	je     5f583262 <_fill_keyboard_dideviceinstanceA+0x32>
5f58325a:	66 c7 07 00 00       	movw   $0x0,(%edi)
5f58325f:	83 c7 02             	add    $0x2,%edi
5f583262:	f7 c6 01 00 00 00    	test   $0x1,%esi
5f583268:	74 03                	je     5f58326d <_fill_keyboard_dideviceinstanceA+0x3d>
5f58326a:	c6 07 00             	movb   $0x0,(%edi)
5f58326d:	50                   	push   %eax
5f58326e:	8d 85 98 fd ff ff    	lea    0xfffffd98(%ebp),%eax
5f583274:	68 44 02 00 00       	push   $0x244
5f583279:	6a 00                	push   $0x0
5f58327b:	50                   	push   %eax
5f58327c:	e8 cf 42 00 00       	call   5f587550 <_memset>
5f583281:	a1 70 ca 58 5f       	mov    0x5f58ca70,%eax
5f583286:	89 85 9c fd ff ff    	mov    %eax,0xfffffd9c(%ebp)
5f58328c:	a1 74 ca 58 5f       	mov    0x5f58ca74,%eax
5f583291:	89 85 a0 fd ff ff    	mov    %eax,0xfffffda0(%ebp)
5f583297:	a1 78 ca 58 5f       	mov    0x5f58ca78,%eax
5f58329c:	89 85 a4 fd ff ff    	mov    %eax,0xfffffda4(%ebp)
5f5832a2:	a1 7c ca 58 5f       	mov    0x5f58ca7c,%eax
5f5832a7:	89 85 a8 fd ff ff    	mov    %eax,0xfffffda8(%ebp)
5f5832ad:	a1 00 90 58 5f       	mov    0x5f589000,%eax
5f5832b2:	89 85 ac fd ff ff    	mov    %eax,0xfffffdac(%ebp)
5f5832b8:	a1 04 90 58 5f       	mov    0x5f589004,%eax
5f5832bd:	89 85 b0 fd ff ff    	mov    %eax,0xfffffdb0(%ebp)
5f5832c3:	a1 08 90 58 5f       	mov    0x5f589008,%eax
5f5832c8:	89 85 b4 fd ff ff    	mov    %eax,0xfffffdb4(%ebp)
5f5832ce:	a1 0c 90 58 5f       	mov    0x5f58900c,%eax
5f5832d3:	89 85 b8 fd ff ff    	mov    %eax,0xfffffdb8(%ebp)
5f5832d9:	83 c4 10             	add    $0x10,%esp
5f5832dc:	83 bd 94 fd ff ff 08 	cmpl   $0x8,0xfffffd94(%ebp)
5f5832e3:	0f 9d c0             	setge  %al
5f5832e6:	25 ff 00 00 00       	and    $0xff,%eax
5f5832eb:	89 b5 98 fd ff ff    	mov    %esi,0xfffffd98(%ebp)
5f5832f1:	48                   	dec    %eax
5f5832f2:	c7 85 c0 fd ff ff 4b 	movl   $0x6279654b,0xfffffdc0(%ebp)
5f5832f9:	65 79 62 
5f5832fc:	83 e0 f0             	and    $0xfffffff0,%eax
5f5832ff:	c7 85 c4 fd ff ff 6f 	movl   $0x6472616f,0xfffffdc4(%ebp)
5f583306:	61 72 64 
5f583309:	83 c0 13             	add    $0x13,%eax
5f58330c:	c6 85 c8 fd ff ff 00 	movb   $0x0,0xfffffdc8(%ebp)
5f583313:	89 85 bc fd ff ff    	mov    %eax,0xfffffdbc(%ebp)
5f583319:	c7 85 c4 fe ff ff 57 	movl   $0x656e6957,0xfffffec4(%ebp)
5f583320:	69 6e 65 
5f583323:	c7 85 c8 fe ff ff 20 	movl   $0x79654b20,0xfffffec8(%ebp)
5f58332a:	4b 65 79 
5f58332d:	c7 85 cc fe ff ff 62 	movl   $0x72616f62,0xfffffecc(%ebp)
5f583334:	6f 61 72 
5f583337:	66 c7 85 d0 fe ff ff 	movw   $0x64,0xfffffed0(%ebp)
5f58333e:	64 00 
5f583340:	89 f2                	mov    %esi,%edx
5f583342:	81 fe 44 02 00 00    	cmp    $0x244,%esi
5f583348:	76 05                	jbe    5f58334f <_fill_keyboard_dideviceinstanceA+0x11f>
5f58334a:	ba 44 02 00 00       	mov    $0x244,%edx
5f58334f:	fc                   	cld    
5f583350:	89 d1                	mov    %edx,%ecx
5f583352:	89 df                	mov    %ebx,%edi
5f583354:	c1 e9 02             	shr    $0x2,%ecx
5f583357:	8d b5 98 fd ff ff    	lea    0xfffffd98(%ebp),%esi
5f58335d:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f58335f:	f6 c2 02             	test   $0x2,%dl
5f583362:	74 0c                	je     5f583370 <_fill_keyboard_dideviceinstanceA+0x140>
5f583364:	66 8b 06             	mov    (%esi),%ax
5f583367:	83 c6 02             	add    $0x2,%esi
5f58336a:	66 89 07             	mov    %ax,(%edi)
5f58336d:	83 c7 02             	add    $0x2,%edi
5f583370:	83 e2 01             	and    $0x1,%edx
5f583373:	74 04                	je     5f583379 <_fill_keyboard_dideviceinstanceA+0x149>
5f583375:	8a 06                	mov    (%esi),%al
5f583377:	88 07                	mov    %al,(%edi)
5f583379:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58337c:	5b                   	pop    %ebx
5f58337d:	5e                   	pop    %esi
5f58337e:	5f                   	pop    %edi
5f58337f:	5d                   	pop    %ebp
5f583380:	c3                   	ret    
5f583381:	eb 0d                	jmp    5f583390 <_fill_keyboard_dideviceinstanceW>
5f583383:	90                   	nop    
5f583384:	90                   	nop    
5f583385:	90                   	nop    
5f583386:	90                   	nop    
5f583387:	90                   	nop    
5f583388:	90                   	nop    
5f583389:	90                   	nop    
5f58338a:	90                   	nop    
5f58338b:	90                   	nop    
5f58338c:	90                   	nop    
5f58338d:	90                   	nop    
5f58338e:	90                   	nop    
5f58338f:	90                   	nop    

5f583390 <_fill_keyboard_dideviceinstanceW>:
5f583390:	55                   	push   %ebp
5f583391:	89 e5                	mov    %esp,%ebp
5f583393:	57                   	push   %edi
5f583394:	56                   	push   %esi
5f583395:	53                   	push   %ebx
5f583396:	81 ec 6c 04 00 00    	sub    $0x46c,%esp
5f58339c:	89 c3                	mov    %eax,%ebx
5f58339e:	8b 30                	mov    (%eax),%esi
5f5833a0:	89 df                	mov    %ebx,%edi
5f5833a2:	fc                   	cld    
5f5833a3:	89 f1                	mov    %esi,%ecx
5f5833a5:	31 c0                	xor    %eax,%eax
5f5833a7:	c1 e9 02             	shr    $0x2,%ecx
5f5833aa:	89 95 94 fb ff ff    	mov    %edx,0xfffffb94(%ebp)
5f5833b0:	f7 c6 02 00 00 00    	test   $0x2,%esi
5f5833b6:	f3 ab                	repz stos %eax,%es:(%edi)
5f5833b8:	74 08                	je     5f5833c2 <_fill_keyboard_dideviceinstanceW+0x32>
5f5833ba:	66 c7 07 00 00       	movw   $0x0,(%edi)
5f5833bf:	83 c7 02             	add    $0x2,%edi
5f5833c2:	f7 c6 01 00 00 00    	test   $0x1,%esi
5f5833c8:	74 03                	je     5f5833cd <_fill_keyboard_dideviceinstanceW+0x3d>
5f5833ca:	c6 07 00             	movb   $0x0,(%edi)
5f5833cd:	50                   	push   %eax
5f5833ce:	8d 85 98 fb ff ff    	lea    0xfffffb98(%ebp),%eax
5f5833d4:	68 4c 04 00 00       	push   $0x44c
5f5833d9:	6a 00                	push   $0x0
5f5833db:	50                   	push   %eax
5f5833dc:	e8 6f 41 00 00       	call   5f587550 <_memset>
5f5833e1:	a1 70 ca 58 5f       	mov    0x5f58ca70,%eax
5f5833e6:	89 85 9c fb ff ff    	mov    %eax,0xfffffb9c(%ebp)
5f5833ec:	a1 74 ca 58 5f       	mov    0x5f58ca74,%eax
5f5833f1:	89 85 a0 fb ff ff    	mov    %eax,0xfffffba0(%ebp)
5f5833f7:	a1 78 ca 58 5f       	mov    0x5f58ca78,%eax
5f5833fc:	89 85 a4 fb ff ff    	mov    %eax,0xfffffba4(%ebp)
5f583402:	a1 7c ca 58 5f       	mov    0x5f58ca7c,%eax
5f583407:	89 85 a8 fb ff ff    	mov    %eax,0xfffffba8(%ebp)
5f58340d:	a1 00 90 58 5f       	mov    0x5f589000,%eax
5f583412:	89 85 ac fb ff ff    	mov    %eax,0xfffffbac(%ebp)
5f583418:	a1 04 90 58 5f       	mov    0x5f589004,%eax
5f58341d:	89 85 b0 fb ff ff    	mov    %eax,0xfffffbb0(%ebp)
5f583423:	a1 08 90 58 5f       	mov    0x5f589008,%eax
5f583428:	89 85 b4 fb ff ff    	mov    %eax,0xfffffbb4(%ebp)
5f58342e:	a1 0c 90 58 5f       	mov    0x5f58900c,%eax
5f583433:	83 bd 94 fb ff ff 08 	cmpl   $0x8,0xfffffb94(%ebp)
5f58343a:	89 85 b8 fb ff ff    	mov    %eax,0xfffffbb8(%ebp)
5f583440:	5f                   	pop    %edi
5f583441:	58                   	pop    %eax
5f583442:	89 b5 98 fb ff ff    	mov    %esi,0xfffffb98(%ebp)
5f583448:	0f 9d c0             	setge  %al
5f58344b:	25 ff 00 00 00       	and    $0xff,%eax
5f583450:	68 04 01 00 00       	push   $0x104
5f583455:	48                   	dec    %eax
5f583456:	83 e0 f0             	and    $0xfffffff0,%eax
5f583459:	83 c0 13             	add    $0x13,%eax
5f58345c:	89 85 bc fb ff ff    	mov    %eax,0xfffffbbc(%ebp)
5f583462:	8d 85 c0 fb ff ff    	lea    0xfffffbc0(%ebp),%eax
5f583468:	50                   	push   %eax
5f583469:	6a ff                	push   $0xffffffff
5f58346b:	68 15 b1 58 5f       	push   $0x5f58b115
5f583470:	6a 00                	push   $0x0
5f583472:	6a 00                	push   $0x0
5f583474:	e8 c7 32 00 00       	call   5f586740 <_MultiByteToWideChar@24>
5f583479:	8d 85 c8 fd ff ff    	lea    0xfffffdc8(%ebp),%eax
5f58347f:	68 04 01 00 00       	push   $0x104
5f583484:	50                   	push   %eax
5f583485:	6a ff                	push   $0xffffffff
5f583487:	68 1e b1 58 5f       	push   $0x5f58b11e
5f58348c:	6a 00                	push   $0x0
5f58348e:	6a 00                	push   $0x0
5f583490:	e8 ab 32 00 00       	call   5f586740 <_MultiByteToWideChar@24>
5f583495:	89 f2                	mov    %esi,%edx
5f583497:	59                   	pop    %ecx
5f583498:	81 fa 4c 04 00 00    	cmp    $0x44c,%edx
5f58349e:	5e                   	pop    %esi
5f58349f:	76 05                	jbe    5f5834a6 <_fill_keyboard_dideviceinstanceW+0x116>
5f5834a1:	ba 4c 04 00 00       	mov    $0x44c,%edx
5f5834a6:	fc                   	cld    
5f5834a7:	89 d1                	mov    %edx,%ecx
5f5834a9:	89 df                	mov    %ebx,%edi
5f5834ab:	c1 e9 02             	shr    $0x2,%ecx
5f5834ae:	8d b5 98 fb ff ff    	lea    0xfffffb98(%ebp),%esi
5f5834b4:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f5834b6:	f6 c2 02             	test   $0x2,%dl
5f5834b9:	74 0c                	je     5f5834c7 <_fill_keyboard_dideviceinstanceW+0x137>
5f5834bb:	66 8b 06             	mov    (%esi),%ax
5f5834be:	83 c6 02             	add    $0x2,%esi
5f5834c1:	66 89 07             	mov    %ax,(%edi)
5f5834c4:	83 c7 02             	add    $0x2,%edi
5f5834c7:	83 e2 01             	and    $0x1,%edx
5f5834ca:	74 04                	je     5f5834d0 <_fill_keyboard_dideviceinstanceW+0x140>
5f5834cc:	8a 06                	mov    (%esi),%al
5f5834ce:	88 07                	mov    %al,(%edi)
5f5834d0:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5834d3:	5b                   	pop    %ebx
5f5834d4:	5e                   	pop    %esi
5f5834d5:	5f                   	pop    %edi
5f5834d6:	5d                   	pop    %ebp
5f5834d7:	c3                   	ret    
5f5834d8:	90                   	nop    
5f5834d9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f5834e0 <_keyboarddev_enum_deviceA>:
5f5834e0:	55                   	push   %ebp
5f5834e1:	89 e5                	mov    %esp,%ebp
5f5834e3:	53                   	push   %ebx
5f5834e4:	50                   	push   %eax
5f5834e5:	31 c0                	xor    %eax,%eax
5f5834e7:	8b 5d 18             	mov    0x18(%ebp),%ebx
5f5834ea:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f5834ed:	8b 55 14             	mov    0x14(%ebp),%edx
5f5834f0:	85 db                	test   %ebx,%ebx
5f5834f2:	75 39                	jne    5f58352d <_keyboarddev_enum_deviceA+0x4d>
5f5834f4:	85 c9                	test   %ecx,%ecx
5f5834f6:	74 28                	je     5f583520 <_keyboarddev_enum_deviceA+0x40>
5f5834f8:	83 f9 03             	cmp    $0x3,%ecx
5f5834fb:	0f 94 c0             	sete   %al
5f5834fe:	31 db                	xor    %ebx,%ebx
5f583500:	83 fa 07             	cmp    $0x7,%edx
5f583503:	88 c3                	mov    %al,%bl
5f583505:	0f 9e c0             	setle  %al
5f583508:	85 d8                	test   %ebx,%eax
5f58350a:	75 14                	jne    5f583520 <_keyboarddev_enum_deviceA+0x40>
5f58350c:	83 f9 13             	cmp    $0x13,%ecx
5f58350f:	0f 94 c0             	sete   %al
5f583512:	25 ff 00 00 00       	and    $0xff,%eax
5f583517:	09 c3                	or     %eax,%ebx
5f583519:	74 16                	je     5f583531 <_keyboarddev_enum_deviceA+0x51>
5f58351b:	83 fa 07             	cmp    $0x7,%edx
5f58351e:	7e 11                	jle    5f583531 <_keyboarddev_enum_deviceA+0x51>
5f583520:	8b 45 10             	mov    0x10(%ebp),%eax
5f583523:	e8 08 fd ff ff       	call   5f583230 <_fill_keyboard_dideviceinstanceA>
5f583528:	b8 01 00 00 00       	mov    $0x1,%eax
5f58352d:	5a                   	pop    %edx
5f58352e:	5b                   	pop    %ebx
5f58352f:	5d                   	pop    %ebp
5f583530:	c3                   	ret    
5f583531:	31 c0                	xor    %eax,%eax
5f583533:	5a                   	pop    %edx
5f583534:	5b                   	pop    %ebx
5f583535:	5d                   	pop    %ebp
5f583536:	c3                   	ret    
5f583537:	89 f6                	mov    %esi,%esi
5f583539:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f583540 <_keyboarddev_enum_deviceW>:
5f583540:	55                   	push   %ebp
5f583541:	89 e5                	mov    %esp,%ebp
5f583543:	53                   	push   %ebx
5f583544:	50                   	push   %eax
5f583545:	31 c0                	xor    %eax,%eax
5f583547:	8b 5d 18             	mov    0x18(%ebp),%ebx
5f58354a:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f58354d:	8b 55 14             	mov    0x14(%ebp),%edx
5f583550:	85 db                	test   %ebx,%ebx
5f583552:	75 39                	jne    5f58358d <_keyboarddev_enum_deviceW+0x4d>
5f583554:	85 c9                	test   %ecx,%ecx
5f583556:	74 28                	je     5f583580 <_keyboarddev_enum_deviceW+0x40>
5f583558:	83 f9 03             	cmp    $0x3,%ecx
5f58355b:	0f 94 c0             	sete   %al
5f58355e:	31 db                	xor    %ebx,%ebx
5f583560:	83 fa 07             	cmp    $0x7,%edx
5f583563:	88 c3                	mov    %al,%bl
5f583565:	0f 9e c0             	setle  %al
5f583568:	85 d8                	test   %ebx,%eax
5f58356a:	75 14                	jne    5f583580 <_keyboarddev_enum_deviceW+0x40>
5f58356c:	83 f9 13             	cmp    $0x13,%ecx
5f58356f:	0f 94 c0             	sete   %al
5f583572:	25 ff 00 00 00       	and    $0xff,%eax
5f583577:	09 c3                	or     %eax,%ebx
5f583579:	74 16                	je     5f583591 <_keyboarddev_enum_deviceW+0x51>
5f58357b:	83 fa 07             	cmp    $0x7,%edx
5f58357e:	7e 11                	jle    5f583591 <_keyboarddev_enum_deviceW+0x51>
5f583580:	8b 45 10             	mov    0x10(%ebp),%eax
5f583583:	e8 08 fe ff ff       	call   5f583390 <_fill_keyboard_dideviceinstanceW>
5f583588:	b8 01 00 00 00       	mov    $0x1,%eax
5f58358d:	5a                   	pop    %edx
5f58358e:	5b                   	pop    %ebx
5f58358f:	5d                   	pop    %ebp
5f583590:	c3                   	ret    
5f583591:	31 c0                	xor    %eax,%eax
5f583593:	5a                   	pop    %edx
5f583594:	5b                   	pop    %ebx
5f583595:	5d                   	pop    %ebp
5f583596:	c3                   	ret    
5f583597:	89 f6                	mov    %esi,%esi
5f583599:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5835a0 <_alloc_device_keyboard>:
5f5835a0:	55                   	push   %ebp
5f5835a1:	89 e5                	mov    %esp,%ebp
5f5835a3:	56                   	push   %esi
5f5835a4:	89 d6                	mov    %edx,%esi
5f5835a6:	53                   	push   %ebx
5f5835a7:	89 c3                	mov    %eax,%ebx
5f5835a9:	50                   	push   %eax
5f5835aa:	6a 50                	push   $0x50
5f5835ac:	6a 08                	push   $0x8
5f5835ae:	50                   	push   %eax
5f5835af:	e8 5c 31 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5835b4:	89 04 24             	mov    %eax,(%esp)
5f5835b7:	e8 74 31 00 00       	call   5f586730 <_HeapAlloc@12>
5f5835bc:	89 30                	mov    %esi,(%eax)
5f5835be:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
5f5835c5:	8b 13                	mov    (%ebx),%edx
5f5835c7:	89 50 08             	mov    %edx,0x8(%eax)
5f5835ca:	8b 53 04             	mov    0x4(%ebx),%edx
5f5835cd:	89 50 0c             	mov    %edx,0xc(%eax)
5f5835d0:	8b 53 08             	mov    0x8(%ebx),%edx
5f5835d3:	89 50 10             	mov    %edx,0x10(%eax)
5f5835d6:	8b 53 0c             	mov    0xc(%ebx),%edx
5f5835d9:	89 50 14             	mov    %edx,0x14(%eax)
5f5835dc:	8b 55 08             	mov    0x8(%ebp),%edx
5f5835df:	89 50 18             	mov    %edx,0x18(%eax)
5f5835e2:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5835e5:	5b                   	pop    %ebx
5f5835e6:	5e                   	pop    %esi
5f5835e7:	5d                   	pop    %ebp
5f5835e8:	c3                   	ret    
5f5835e9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f5835f0 <_keyboarddev_create_deviceA>:
5f5835f0:	55                   	push   %ebp
5f5835f1:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5835f6:	89 e5                	mov    %esp,%ebp
5f5835f8:	57                   	push   %edi
5f5835f9:	56                   	push   %esi
5f5835fa:	53                   	push   %ebx
5f5835fb:	83 ec 0c             	sub    $0xc,%esp
5f5835fe:	be 70 ca 58 5f       	mov    $0x5f58ca70,%esi
5f583603:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f583606:	8b 45 10             	mov    0x10(%ebp),%eax
5f583609:	fc                   	cld    
5f58360a:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f58360d:	89 df                	mov    %ebx,%edi
5f58360f:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583611:	74 1d                	je     5f583630 <_keyboarddev_create_deviceA+0x40>
5f583613:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583618:	be 00 90 58 5f       	mov    $0x5f589000,%esi
5f58361d:	89 df                	mov    %ebx,%edi
5f58361f:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583621:	0f 97 c2             	seta   %dl
5f583624:	0f 92 c0             	setb   %al
5f583627:	b9 54 01 04 80       	mov    $0x80040154,%ecx
5f58362c:	38 c2                	cmp    %al,%dl
5f58362e:	75 5a                	jne    5f58368a <_keyboarddev_create_deviceA+0x9a>
5f583630:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f583633:	85 c0                	test   %eax,%eax
5f583635:	74 39                	je     5f583670 <_keyboarddev_create_deviceA+0x80>
5f583637:	fc                   	cld    
5f583638:	be 90 bf 58 5f       	mov    $0x5f58bf90,%esi
5f58363d:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583642:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f583645:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583647:	74 27                	je     5f583670 <_keyboarddev_create_deviceA+0x80>
5f583649:	be f0 bf 58 5f       	mov    $0x5f58bff0,%esi
5f58364e:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583653:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f583656:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583658:	74 16                	je     5f583670 <_keyboarddev_create_deviceA+0x80>
5f58365a:	be d0 bf 58 5f       	mov    $0x5f58bfd0,%esi
5f58365f:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583664:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f583667:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583669:	75 29                	jne    5f583694 <_keyboarddev_create_deviceA+0xa4>
5f58366b:	90                   	nop    
5f58366c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f583670:	83 ec 0c             	sub    $0xc,%esp
5f583673:	8b 45 08             	mov    0x8(%ebp),%eax
5f583676:	ba 20 90 58 5f       	mov    $0x5f589020,%edx
5f58367b:	50                   	push   %eax
5f58367c:	89 d8                	mov    %ebx,%eax
5f58367e:	e8 1d ff ff ff       	call   5f5835a0 <_alloc_device_keyboard>
5f583683:	8b 55 14             	mov    0x14(%ebp),%edx
5f583686:	31 c9                	xor    %ecx,%ecx
5f583688:	89 02                	mov    %eax,(%edx)
5f58368a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58368d:	89 c8                	mov    %ecx,%eax
5f58368f:	5b                   	pop    %ebx
5f583690:	5e                   	pop    %esi
5f583691:	5f                   	pop    %edi
5f583692:	5d                   	pop    %ebp
5f583693:	c3                   	ret    
5f583694:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583699:	be b0 bf 58 5f       	mov    $0x5f58bfb0,%esi
5f58369e:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5836a1:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5836a3:	0f 97 c2             	seta   %dl
5f5836a6:	0f 92 c0             	setb   %al
5f5836a9:	b9 02 40 00 80       	mov    $0x80004002,%ecx
5f5836ae:	38 c2                	cmp    %al,%dl
5f5836b0:	74 be                	je     5f583670 <_keyboarddev_create_deviceA+0x80>
5f5836b2:	eb d6                	jmp    5f58368a <_keyboarddev_create_deviceA+0x9a>
5f5836b4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f5836ba:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f5836c0 <_keyboarddev_create_deviceW>:
5f5836c0:	55                   	push   %ebp
5f5836c1:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5836c6:	89 e5                	mov    %esp,%ebp
5f5836c8:	57                   	push   %edi
5f5836c9:	56                   	push   %esi
5f5836ca:	53                   	push   %ebx
5f5836cb:	83 ec 0c             	sub    $0xc,%esp
5f5836ce:	be 70 ca 58 5f       	mov    $0x5f58ca70,%esi
5f5836d3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f5836d6:	8b 45 10             	mov    0x10(%ebp),%eax
5f5836d9:	fc                   	cld    
5f5836da:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f5836dd:	89 df                	mov    %ebx,%edi
5f5836df:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5836e1:	74 1d                	je     5f583700 <_keyboarddev_create_deviceW+0x40>
5f5836e3:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5836e8:	be 00 90 58 5f       	mov    $0x5f589000,%esi
5f5836ed:	89 df                	mov    %ebx,%edi
5f5836ef:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5836f1:	0f 97 c2             	seta   %dl
5f5836f4:	0f 92 c0             	setb   %al
5f5836f7:	b9 54 01 04 80       	mov    $0x80040154,%ecx
5f5836fc:	38 c2                	cmp    %al,%dl
5f5836fe:	75 5a                	jne    5f58375a <_keyboarddev_create_deviceW+0x9a>
5f583700:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
5f583703:	85 d2                	test   %edx,%edx
5f583705:	74 39                	je     5f583740 <_keyboarddev_create_deviceW+0x80>
5f583707:	fc                   	cld    
5f583708:	be 80 bf 58 5f       	mov    $0x5f58bf80,%esi
5f58370d:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583712:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f583715:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583717:	74 27                	je     5f583740 <_keyboarddev_create_deviceW+0x80>
5f583719:	be e0 bf 58 5f       	mov    $0x5f58bfe0,%esi
5f58371e:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583723:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f583726:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583728:	74 16                	je     5f583740 <_keyboarddev_create_deviceW+0x80>
5f58372a:	be c0 bf 58 5f       	mov    $0x5f58bfc0,%esi
5f58372f:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583734:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f583737:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583739:	75 29                	jne    5f583764 <_keyboarddev_create_deviceW+0xa4>
5f58373b:	90                   	nop    
5f58373c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f583740:	83 ec 0c             	sub    $0xc,%esp
5f583743:	8b 45 08             	mov    0x8(%ebp),%eax
5f583746:	ba 80 8f 58 5f       	mov    $0x5f588f80,%edx
5f58374b:	50                   	push   %eax
5f58374c:	89 d8                	mov    %ebx,%eax
5f58374e:	e8 4d fe ff ff       	call   5f5835a0 <_alloc_device_keyboard>
5f583753:	8b 55 14             	mov    0x14(%ebp),%edx
5f583756:	31 c9                	xor    %ecx,%ecx
5f583758:	89 02                	mov    %eax,(%edx)
5f58375a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58375d:	89 c8                	mov    %ecx,%eax
5f58375f:	5b                   	pop    %ebx
5f583760:	5e                   	pop    %esi
5f583761:	5f                   	pop    %edi
5f583762:	5d                   	pop    %ebp
5f583763:	c3                   	ret    
5f583764:	b9 10 00 00 00       	mov    $0x10,%ecx
5f583769:	be a0 bf 58 5f       	mov    $0x5f58bfa0,%esi
5f58376e:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f583771:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f583773:	0f 97 c2             	seta   %dl
5f583776:	0f 92 c0             	setb   %al
5f583779:	b9 02 40 00 80       	mov    $0x80004002,%ecx
5f58377e:	38 c2                	cmp    %al,%dl
5f583780:	74 be                	je     5f583740 <_keyboarddev_create_deviceW+0x80>
5f583782:	eb d6                	jmp    5f58375a <_keyboarddev_create_deviceW+0x9a>
5f583784:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58378a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f583790 <_scan_keyboard>:
5f583790:	55                   	push   %ebp
5f583791:	89 e5                	mov    %esp,%ebp
5f583793:	83 ec 14             	sub    $0x14,%esp
5f583796:	68 60 8f 58 5f       	push   $0x5f588f60
5f58379b:	e8 e0 eb ff ff       	call   5f582380 <_dinput_register_device>
5f5837a0:	c9                   	leave  
5f5837a1:	c3                   	ret    
5f5837a2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5837a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5837b0 <_keyboarddev_register>:
5f5837b0:	55                   	push   %ebp
5f5837b1:	89 e5                	mov    %esp,%ebp
5f5837b3:	83 ec 14             	sub    $0x14,%esp
5f5837b6:	68 60 8f 58 5f       	push   $0x5f588f60
5f5837bb:	e8 c0 eb ff ff       	call   5f582380 <_dinput_register_device>
5f5837c0:	c9                   	leave  
5f5837c1:	c3                   	ret    
5f5837c2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5837c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5837d0 <_SysKeyboardAImpl_Release@4>:
5f5837d0:	55                   	push   %ebp
5f5837d1:	89 e5                	mov    %esp,%ebp
5f5837d3:	53                   	push   %ebx
5f5837d4:	83 ec 10             	sub    $0x10,%esp
5f5837d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f5837da:	8d 43 04             	lea    0x4(%ebx),%eax
5f5837dd:	50                   	push   %eax
5f5837de:	e8 6d 2f 00 00       	call   5f586750 <_InterlockedDecrement@4>
5f5837e3:	83 c4 0c             	add    $0xc,%esp
5f5837e6:	85 c0                	test   %eax,%eax
5f5837e8:	74 07                	je     5f5837f1 <_SysKeyboardAImpl_Release@4+0x21>
5f5837ea:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f5837ed:	c9                   	leave  
5f5837ee:	c2 04 00             	ret    $0x4
5f5837f1:	50                   	push   %eax
5f5837f2:	8b 43 28             	mov    0x28(%ebx),%eax
5f5837f5:	50                   	push   %eax
5f5837f6:	6a 00                	push   $0x0
5f5837f8:	50                   	push   %eax
5f5837f9:	e8 12 2f 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5837fe:	89 04 24             	mov    %eax,(%esp)
5f583801:	e8 1a 2f 00 00       	call   5f586720 <_HeapFree@12>
5f583806:	8d 43 38             	lea    0x38(%ebx),%eax
5f583809:	51                   	push   %ecx
5f58380a:	51                   	push   %ecx
5f58380b:	50                   	push   %eax
5f58380c:	e8 6f 2f 00 00       	call   5f586780 <_DeleteCriticalSection@4>
5f583811:	58                   	pop    %eax
5f583812:	5a                   	pop    %edx
5f583813:	53                   	push   %ebx
5f583814:	6a 00                	push   $0x0
5f583816:	51                   	push   %ecx
5f583817:	e8 f4 2e 00 00       	call   5f586710 <_GetProcessHeap@0>
5f58381c:	89 04 24             	mov    %eax,(%esp)
5f58381f:	e8 fc 2e 00 00       	call   5f586720 <_HeapFree@12>
5f583824:	31 c0                	xor    %eax,%eax
5f583826:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f583829:	c9                   	leave  
5f58382a:	c2 04 00             	ret    $0x4
5f58382d:	8d 76 00             	lea    0x0(%esi),%esi

5f583830 <_SysKeyboardAImpl_SetProperty@12>:
5f583830:	55                   	push   %ebp
5f583831:	89 e5                	mov    %esp,%ebp
5f583833:	8b 55 08             	mov    0x8(%ebp),%edx
5f583836:	66 83 7d 0e 00       	cmpw   $0x0,0xe(%ebp)
5f58383b:	75 06                	jne    5f583843 <_SysKeyboardAImpl_SetProperty@12+0x13>
5f58383d:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
5f583841:	74 06                	je     5f583849 <_SysKeyboardAImpl_SetProperty@12+0x19>
5f583843:	31 c0                	xor    %eax,%eax
5f583845:	5d                   	pop    %ebp
5f583846:	c2 0c 00             	ret    $0xc
5f583849:	8b 4a 20             	mov    0x20(%edx),%ecx
5f58384c:	b8 57 00 07 80       	mov    $0x80070057,%eax
5f583851:	85 c9                	test   %ecx,%ecx
5f583853:	75 f0                	jne    5f583845 <_SysKeyboardAImpl_SetProperty@12+0x15>
5f583855:	8b 45 10             	mov    0x10(%ebp),%eax
5f583858:	8b 40 10             	mov    0x10(%eax),%eax
5f58385b:	89 42 24             	mov    %eax,0x24(%edx)
5f58385e:	31 c0                	xor    %eax,%eax
5f583860:	eb e3                	jmp    5f583845 <_SysKeyboardAImpl_SetProperty@12+0x15>
5f583862:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f583869:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f583870 <_SysKeyboardAImpl_GetProperty@12>:
5f583870:	55                   	push   %ebp
5f583871:	89 e5                	mov    %esp,%ebp
5f583873:	8b 55 08             	mov    0x8(%ebp),%edx
5f583876:	66 83 7d 0e 00       	cmpw   $0x0,0xe(%ebp)
5f58387b:	75 06                	jne    5f583883 <_SysKeyboardAImpl_GetProperty@12+0x13>
5f58387d:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
5f583881:	74 06                	je     5f583889 <_SysKeyboardAImpl_GetProperty@12+0x19>
5f583883:	31 c0                	xor    %eax,%eax
5f583885:	5d                   	pop    %ebp
5f583886:	c2 0c 00             	ret    $0xc
5f583889:	8b 4a 20             	mov    0x20(%edx),%ecx
5f58388c:	b8 57 00 07 80       	mov    $0x80070057,%eax
5f583891:	85 c9                	test   %ecx,%ecx
5f583893:	75 f0                	jne    5f583885 <_SysKeyboardAImpl_GetProperty@12+0x15>
5f583895:	8b 45 10             	mov    0x10(%ebp),%eax
5f583898:	8b 52 24             	mov    0x24(%edx),%edx
5f58389b:	89 50 10             	mov    %edx,0x10(%eax)
5f58389e:	31 c0                	xor    %eax,%eax
5f5838a0:	eb e3                	jmp    5f583885 <_SysKeyboardAImpl_GetProperty@12+0x15>
5f5838a2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5838a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5838b0 <_SysKeyboardAImpl_GetDeviceState@12>:
5f5838b0:	55                   	push   %ebp
5f5838b1:	89 e5                	mov    %esp,%ebp
5f5838b3:	50                   	push   %eax
5f5838b4:	50                   	push   %eax
5f5838b5:	e8 76 f8 ff ff       	call   5f583130 <_reactos_input_keyboard>
5f5838ba:	b8 57 00 07 80       	mov    $0x80070057,%eax
5f5838bf:	81 7d 0c 00 01 00 00 	cmpl   $0x100,0xc(%ebp)
5f5838c6:	75 38                	jne    5f583900 <_SysKeyboardAImpl_GetDeviceState@12+0x50>
5f5838c8:	83 ec 0c             	sub    $0xc,%esp
5f5838cb:	6a 00                	push   $0x0
5f5838cd:	68 ff 04 00 00       	push   $0x4ff
5f5838d2:	6a 00                	push   $0x0
5f5838d4:	6a 00                	push   $0x0
5f5838d6:	6a 00                	push   $0x0
5f5838d8:	e8 f3 2c 00 00       	call   5f5865d0 <_MsgWaitForMultipleObjectsEx@20>
5f5838dd:	31 c0                	xor    %eax,%eax
5f5838df:	83 c4 0c             	add    $0xc,%esp
5f5838e2:	40                   	inc    %eax
5f5838e3:	3d ff 00 00 00       	cmp    $0xff,%eax
5f5838e8:	7e f8                	jle    5f5838e2 <_SysKeyboardAImpl_GetDeviceState@12+0x32>
5f5838ea:	50                   	push   %eax
5f5838eb:	8b 45 10             	mov    0x10(%ebp),%eax
5f5838ee:	68 00 01 00 00       	push   $0x100
5f5838f3:	68 50 e0 58 5f       	push   $0x5f58e050
5f5838f8:	50                   	push   %eax
5f5838f9:	e8 62 3c 00 00       	call   5f587560 <_memcpy>
5f5838fe:	31 c0                	xor    %eax,%eax
5f583900:	c9                   	leave  
5f583901:	c2 0c 00             	ret    $0xc
5f583904:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58390a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f583910 <_SysKeyboardAImpl_GetDeviceData@20>:
5f583910:	55                   	push   %ebp
5f583911:	89 e5                	mov    %esp,%ebp
5f583913:	57                   	push   %edi
5f583914:	56                   	push   %esi
5f583915:	53                   	push   %ebx
5f583916:	83 ec 0c             	sub    $0xc,%esp
5f583919:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
5f583920:	8b 75 08             	mov    0x8(%ebp),%esi
5f583923:	e8 08 f8 ff ff       	call   5f583130 <_reactos_input_keyboard>
5f583928:	8b 5e 20             	mov    0x20(%esi),%ebx
5f58392b:	31 ff                	xor    %edi,%edi
5f58392d:	b8 0c 00 07 80       	mov    $0x8007000c,%eax
5f583932:	85 db                	test   %ebx,%ebx
5f583934:	0f 84 e6 00 00 00    	je     5f583a20 <_SysKeyboardAImpl_GetDeviceData@20+0x110>
5f58393a:	8b 4e 28             	mov    0x28(%esi),%ecx
5f58393d:	b8 07 02 04 80       	mov    $0x80040207,%eax
5f583942:	85 c9                	test   %ecx,%ecx
5f583944:	0f 84 d6 00 00 00    	je     5f583a20 <_SysKeyboardAImpl_GetDeviceData@20+0x110>
5f58394a:	b8 57 00 07 80       	mov    $0x80070057,%eax
5f58394f:	83 7d 0c 0f          	cmpl   $0xf,0xc(%ebp)
5f583953:	0f 86 c7 00 00 00    	jbe    5f583a20 <_SysKeyboardAImpl_GetDeviceData@20+0x110>
5f583959:	83 ec 0c             	sub    $0xc,%esp
5f58395c:	6a 00                	push   $0x0
5f58395e:	68 ff 04 00 00       	push   $0x4ff
5f583963:	6a 00                	push   $0x0
5f583965:	6a 00                	push   $0x0
5f583967:	6a 00                	push   $0x0
5f583969:	e8 62 2c 00 00       	call   5f5865d0 <_MsgWaitForMultipleObjectsEx@20>
5f58396e:	8d 46 38             	lea    0x38(%esi),%eax
5f583971:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
5f583974:	50                   	push   %eax
5f583975:	e8 16 2e 00 00       	call   5f586790 <_EnterCriticalSection@4>
5f58397a:	8b 55 14             	mov    0x14(%ebp),%edx
5f58397d:	83 c4 0c             	add    $0xc,%esp
5f583980:	8b 02                	mov    (%edx),%eax
5f583982:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f583985:	eb 42                	jmp    5f5839c9 <_SysKeyboardAImpl_GetDeviceData@20+0xb9>
5f583987:	8b 55 10             	mov    0x10(%ebp),%edx
5f58398a:	85 d2                	test   %edx,%edx
5f58398c:	74 35                	je     5f5839c3 <_SysKeyboardAImpl_GetDeviceData@20+0xb3>
5f58398e:	8b 56 30             	mov    0x30(%esi),%edx
5f583991:	8b 4e 28             	mov    0x28(%esi),%ecx
5f583994:	01 fa                	add    %edi,%edx
5f583996:	89 d0                	mov    %edx,%eax
5f583998:	c1 fa 1f             	sar    $0x1f,%edx
5f58399b:	f7 7e 24             	idivl  0x24(%esi)
5f58399e:	8d 14 92             	lea    (%edx,%edx,4),%edx
5f5839a1:	c1 e2 02             	shl    $0x2,%edx
5f5839a4:	8b 04 0a             	mov    (%edx,%ecx,1),%eax
5f5839a7:	89 03                	mov    %eax,(%ebx)
5f5839a9:	8b 44 0a 04          	mov    0x4(%edx,%ecx,1),%eax
5f5839ad:	89 43 04             	mov    %eax,0x4(%ebx)
5f5839b0:	8b 44 0a 08          	mov    0x8(%edx,%ecx,1),%eax
5f5839b4:	89 43 08             	mov    %eax,0x8(%ebx)
5f5839b7:	8b 44 0a 0c          	mov    0xc(%edx,%ecx,1),%eax
5f5839bb:	8b 55 14             	mov    0x14(%ebp),%edx
5f5839be:	89 43 0c             	mov    %eax,0xc(%ebx)
5f5839c1:	8b 02                	mov    (%edx),%eax
5f5839c3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f5839c6:	47                   	inc    %edi
5f5839c7:	01 cb                	add    %ecx,%ebx
5f5839c9:	39 c7                	cmp    %eax,%edi
5f5839cb:	72 05                	jb     5f5839d2 <_SysKeyboardAImpl_GetDeviceData@20+0xc2>
5f5839cd:	83 f8 ff             	cmp    $0xffffffff,%eax
5f5839d0:	75 05                	jne    5f5839d7 <_SysKeyboardAImpl_GetDeviceData@20+0xc7>
5f5839d2:	39 7e 2c             	cmp    %edi,0x2c(%esi)
5f5839d5:	7f b0                	jg     5f583987 <_SysKeyboardAImpl_GetDeviceData@20+0x77>
5f5839d7:	8b 45 14             	mov    0x14(%ebp),%eax
5f5839da:	8b 56 34             	mov    0x34(%esi),%edx
5f5839dd:	85 d2                	test   %edx,%edx
5f5839df:	89 38                	mov    %edi,(%eax)
5f5839e1:	74 07                	je     5f5839ea <_SysKeyboardAImpl_GetDeviceData@20+0xda>
5f5839e3:	c7 45 f0 01 00 00 00 	movl   $0x1,0xfffffff0(%ebp)
5f5839ea:	f6 45 18 01          	testb  $0x1,0x18(%ebp)
5f5839ee:	75 21                	jne    5f583a11 <_SysKeyboardAImpl_GetDeviceData@20+0x101>
5f5839f0:	8b 46 2c             	mov    0x2c(%esi),%eax
5f5839f3:	c7 46 34 00 00 00 00 	movl   $0x0,0x34(%esi)
5f5839fa:	29 f8                	sub    %edi,%eax
5f5839fc:	89 46 2c             	mov    %eax,0x2c(%esi)
5f5839ff:	8b 46 30             	mov    0x30(%esi),%eax
5f583a02:	01 c7                	add    %eax,%edi
5f583a04:	89 fa                	mov    %edi,%edx
5f583a06:	89 f8                	mov    %edi,%eax
5f583a08:	c1 fa 1f             	sar    $0x1f,%edx
5f583a0b:	f7 7e 24             	idivl  0x24(%esi)
5f583a0e:	89 56 30             	mov    %edx,0x30(%esi)
5f583a11:	83 ec 0c             	sub    $0xc,%esp
5f583a14:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f583a17:	50                   	push   %eax
5f583a18:	e8 83 2d 00 00       	call   5f5867a0 <_LeaveCriticalSection@4>
5f583a1d:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f583a20:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f583a23:	5b                   	pop    %ebx
5f583a24:	5e                   	pop    %esi
5f583a25:	5f                   	pop    %edi
5f583a26:	5d                   	pop    %ebp
5f583a27:	c2 14 00             	ret    $0x14
5f583a2a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f583a30 <_SysKeyboardAImpl_EnumObjects@16>:
5f583a30:	55                   	push   %ebp
5f583a31:	89 e5                	mov    %esp,%ebp
5f583a33:	57                   	push   %edi
5f583a34:	56                   	push   %esi
5f583a35:	53                   	push   %ebx
5f583a36:	81 ec 58 01 00 00    	sub    $0x158,%esp
5f583a3c:	8d b5 a8 fe ff ff    	lea    0xfffffea8(%ebp),%esi
5f583a42:	8b 45 14             	mov    0x14(%ebp),%eax
5f583a45:	31 db                	xor    %ebx,%ebx
5f583a47:	50                   	push   %eax
5f583a48:	e8 93 d7 ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f583a4d:	83 c4 0c             	add    $0xc,%esp
5f583a50:	8d bd c8 fe ff ff    	lea    0xfffffec8(%ebp),%edi
5f583a56:	68 3c 01 00 00       	push   $0x13c
5f583a5b:	6a 00                	push   $0x0
5f583a5d:	56                   	push   %esi
5f583a5e:	e8 ed 3a 00 00       	call   5f587550 <_memset>
5f583a63:	83 c4 10             	add    $0x10,%esp
5f583a66:	c7 85 a8 fe ff ff 24 	movl   $0x124,0xfffffea8(%ebp)
5f583a6d:	01 00 00 
5f583a70:	eb 0d                	jmp    5f583a7f <_SysKeyboardAImpl_EnumObjects@16+0x4f>
5f583a72:	43                   	inc    %ebx
5f583a73:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
5f583a79:	0f 8f 81 00 00 00    	jg     5f583b00 <_SysKeyboardAImpl_EnumObjects@16+0xd0>
5f583a7f:	a1 e0 cc 58 5f       	mov    0x5f58cce0,%eax
5f583a84:	89 da                	mov    %ebx,%edx
5f583a86:	89 85 ac fe ff ff    	mov    %eax,0xfffffeac(%ebp)
5f583a8c:	a1 e4 cc 58 5f       	mov    0x5f58cce4,%eax
5f583a91:	89 85 b0 fe ff ff    	mov    %eax,0xfffffeb0(%ebp)
5f583a97:	a1 e8 cc 58 5f       	mov    0x5f58cce8,%eax
5f583a9c:	89 85 b4 fe ff ff    	mov    %eax,0xfffffeb4(%ebp)
5f583aa2:	a1 ec cc 58 5f       	mov    0x5f58ccec,%eax
5f583aa7:	89 85 b8 fe ff ff    	mov    %eax,0xfffffeb8(%ebp)
5f583aad:	89 d8                	mov    %ebx,%eax
5f583aaf:	25 ff ff 00 00       	and    $0xffff,%eax
5f583ab4:	83 e2 7f             	and    $0x7f,%edx
5f583ab7:	c1 e0 08             	shl    $0x8,%eax
5f583aba:	89 9d bc fe ff ff    	mov    %ebx,0xfffffebc(%ebp)
5f583ac0:	c1 e2 10             	shl    $0x10,%edx
5f583ac3:	83 c8 0c             	or     $0xc,%eax
5f583ac6:	89 85 c0 fe ff ff    	mov    %eax,0xfffffec0(%ebp)
5f583acc:	50                   	push   %eax
5f583acd:	89 d8                	mov    %ebx,%eax
5f583acf:	25 80 00 00 00       	and    $0x80,%eax
5f583ad4:	68 04 01 00 00       	push   $0x104
5f583ad9:	c1 e0 11             	shl    $0x11,%eax
5f583adc:	57                   	push   %edi
5f583add:	09 c2                	or     %eax,%edx
5f583adf:	52                   	push   %edx
5f583ae0:	e8 fb 2a 00 00       	call   5f5865e0 <_GetKeyNameTextA@12>
5f583ae5:	51                   	push   %ecx
5f583ae6:	51                   	push   %ecx
5f583ae7:	56                   	push   %esi
5f583ae8:	e8 33 d7 ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
5f583aed:	58                   	pop    %eax
5f583aee:	8b 45 10             	mov    0x10(%ebp),%eax
5f583af1:	5a                   	pop    %edx
5f583af2:	50                   	push   %eax
5f583af3:	56                   	push   %esi
5f583af4:	ff 55 0c             	call   *0xc(%ebp)
5f583af7:	5a                   	pop    %edx
5f583af8:	48                   	dec    %eax
5f583af9:	59                   	pop    %ecx
5f583afa:	0f 84 72 ff ff ff    	je     5f583a72 <_SysKeyboardAImpl_EnumObjects@16+0x42>
5f583b00:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f583b03:	31 c0                	xor    %eax,%eax
5f583b05:	5b                   	pop    %ebx
5f583b06:	5e                   	pop    %esi
5f583b07:	5f                   	pop    %edi
5f583b08:	5d                   	pop    %ebp
5f583b09:	c2 10 00             	ret    $0x10
5f583b0c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f583b10 <_SysKeyboardWImpl_EnumObjects@16>:
5f583b10:	55                   	push   %ebp
5f583b11:	89 e5                	mov    %esp,%ebp
5f583b13:	50                   	push   %eax
5f583b14:	50                   	push   %eax
5f583b15:	8b 45 0c             	mov    0xc(%ebp),%eax
5f583b18:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
5f583b1b:	8b 45 10             	mov    0x10(%ebp),%eax
5f583b1e:	89 45 fc             	mov    %eax,0xfffffffc(%ebp)
5f583b21:	8b 45 14             	mov    0x14(%ebp),%eax
5f583b24:	50                   	push   %eax
5f583b25:	8d 45 f8             	lea    0xfffffff8(%ebp),%eax
5f583b28:	50                   	push   %eax
5f583b29:	8b 45 08             	mov    0x8(%ebp),%eax
5f583b2c:	68 c0 17 58 5f       	push   $0x5f5817c0
5f583b31:	50                   	push   %eax
5f583b32:	e8 f9 fe ff ff       	call   5f583a30 <_SysKeyboardAImpl_EnumObjects@16>
5f583b37:	c9                   	leave  
5f583b38:	c2 10 00             	ret    $0x10
5f583b3b:	90                   	nop    
5f583b3c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f583b40 <_SysKeyboardAImpl_Unacquire@4>:
5f583b40:	55                   	push   %ebp
5f583b41:	89 e5                	mov    %esp,%ebp
5f583b43:	53                   	push   %ebx
5f583b44:	51                   	push   %ecx
5f583b45:	b8 01 00 00 00       	mov    $0x1,%eax
5f583b4a:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f583b4d:	8b 53 20             	mov    0x20(%ebx),%edx
5f583b50:	85 d2                	test   %edx,%edx
5f583b52:	74 6a                	je     5f583bbe <_SysKeyboardAImpl_Unacquire@4+0x7e>
5f583b54:	39 1d 70 ea 58 5f    	cmp    %ebx,0x5f58ea70
5f583b5a:	74 69                	je     5f583bc5 <_SysKeyboardAImpl_Unacquire@4+0x85>
5f583b5c:	68 2c b1 58 5f       	push   $0x5f58b12c
5f583b61:	68 8a 02 00 00       	push   $0x28a
5f583b66:	68 47 b1 58 5f       	push   $0x5f58b147
5f583b6b:	68 52 b1 58 5f       	push   $0x5f58b152
5f583b70:	e8 fb 39 00 00       	call   5f587570 <_DbgPrint>
5f583b75:	c7 04 24 5e b1 58 5f 	movl   $0x5f58b15e,(%esp)
5f583b7c:	e8 ef 39 00 00       	call   5f587570 <_DbgPrint>
5f583b81:	83 c4 10             	add    $0x10,%esp
5f583b84:	8b 43 24             	mov    0x24(%ebx),%eax
5f583b87:	c7 43 20 00 00 00 00 	movl   $0x0,0x20(%ebx)
5f583b8e:	85 c0                	test   %eax,%eax
5f583b90:	78 2a                	js     5f583bbc <_SysKeyboardAImpl_Unacquire@4+0x7c>
5f583b92:	50                   	push   %eax
5f583b93:	8b 4b 28             	mov    0x28(%ebx),%ecx
5f583b96:	51                   	push   %ecx
5f583b97:	6a 00                	push   $0x0
5f583b99:	52                   	push   %edx
5f583b9a:	e8 71 2b 00 00       	call   5f586710 <_GetProcessHeap@0>
5f583b9f:	89 04 24             	mov    %eax,(%esp)
5f583ba2:	e8 79 2b 00 00       	call   5f586720 <_HeapFree@12>
5f583ba7:	c7 43 28 00 00 00 00 	movl   $0x0,0x28(%ebx)
5f583bae:	50                   	push   %eax
5f583baf:	50                   	push   %eax
5f583bb0:	8d 43 38             	lea    0x38(%ebx),%eax
5f583bb3:	50                   	push   %eax
5f583bb4:	e8 c7 2b 00 00       	call   5f586780 <_DeleteCriticalSection@4>
5f583bb9:	83 c4 0c             	add    $0xc,%esp
5f583bbc:	31 c0                	xor    %eax,%eax
5f583bbe:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f583bc1:	c9                   	leave  
5f583bc2:	c2 04 00             	ret    $0x4
5f583bc5:	c7 05 70 ea 58 5f 00 	movl   $0x0,0x5f58ea70
5f583bcc:	00 00 00 
5f583bcf:	eb b3                	jmp    5f583b84 <_SysKeyboardAImpl_Unacquire@4+0x44>
5f583bd1:	eb 0d                	jmp    5f583be0 <_SysKeyboardAImpl_Acquire@4>
5f583bd3:	90                   	nop    
5f583bd4:	90                   	nop    
5f583bd5:	90                   	nop    
5f583bd6:	90                   	nop    
5f583bd7:	90                   	nop    
5f583bd8:	90                   	nop    
5f583bd9:	90                   	nop    
5f583bda:	90                   	nop    
5f583bdb:	90                   	nop    
5f583bdc:	90                   	nop    
5f583bdd:	90                   	nop    
5f583bde:	90                   	nop    
5f583bdf:	90                   	nop    

5f583be0 <_SysKeyboardAImpl_Acquire@4>:
5f583be0:	55                   	push   %ebp
5f583be1:	89 e5                	mov    %esp,%ebp
5f583be3:	53                   	push   %ebx
5f583be4:	51                   	push   %ecx
5f583be5:	b8 01 00 00 00       	mov    $0x1,%eax
5f583bea:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f583bed:	8b 53 20             	mov    0x20(%ebx),%edx
5f583bf0:	85 d2                	test   %edx,%edx
5f583bf2:	75 62                	jne    5f583c56 <_SysKeyboardAImpl_Acquire@4+0x76>
5f583bf4:	8b 0d 70 ea 58 5f    	mov    0x5f58ea70,%ecx
5f583bfa:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
5f583c01:	85 c9                	test   %ecx,%ecx
5f583c03:	75 5b                	jne    5f583c60 <_SysKeyboardAImpl_Acquire@4+0x80>
5f583c05:	8b 43 24             	mov    0x24(%ebx),%eax
5f583c08:	89 1d 70 ea 58 5f    	mov    %ebx,0x5f58ea70
5f583c0e:	85 c0                	test   %eax,%eax
5f583c10:	0f 8e 8b 00 00 00    	jle    5f583ca1 <_SysKeyboardAImpl_Acquire@4+0xc1>
5f583c16:	8d 04 80             	lea    (%eax,%eax,4),%eax
5f583c19:	c1 e0 02             	shl    $0x2,%eax
5f583c1c:	52                   	push   %edx
5f583c1d:	50                   	push   %eax
5f583c1e:	6a 08                	push   $0x8
5f583c20:	50                   	push   %eax
5f583c21:	e8 ea 2a 00 00       	call   5f586710 <_GetProcessHeap@0>
5f583c26:	89 04 24             	mov    %eax,(%esp)
5f583c29:	e8 02 2b 00 00       	call   5f586730 <_HeapAlloc@12>
5f583c2e:	c7 43 30 00 00 00 00 	movl   $0x0,0x30(%ebx)
5f583c35:	c7 43 2c 00 00 00 00 	movl   $0x0,0x2c(%ebx)
5f583c3c:	89 43 28             	mov    %eax,0x28(%ebx)
5f583c3f:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)
5f583c46:	50                   	push   %eax
5f583c47:	50                   	push   %eax
5f583c48:	8d 43 38             	lea    0x38(%ebx),%eax
5f583c4b:	50                   	push   %eax
5f583c4c:	e8 5f 2b 00 00       	call   5f5867b0 <_InitializeCriticalSection@4>
5f583c51:	31 c0                	xor    %eax,%eax
5f583c53:	83 c4 0c             	add    $0xc,%esp
5f583c56:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f583c59:	c9                   	leave  
5f583c5a:	c2 04 00             	ret    $0x4
5f583c5d:	8d 76 00             	lea    0x0(%esi),%esi
5f583c60:	68 6f b1 58 5f       	push   $0x5f58b16f
5f583c65:	68 69 02 00 00       	push   $0x269
5f583c6a:	68 47 b1 58 5f       	push   $0x5f58b147
5f583c6f:	68 52 b1 58 5f       	push   $0x5f58b152
5f583c74:	e8 f7 38 00 00       	call   5f587570 <_DbgPrint>
5f583c79:	c7 04 24 88 b1 58 5f 	movl   $0x5f58b188,(%esp)
5f583c80:	e8 eb 38 00 00       	call   5f587570 <_DbgPrint>
5f583c85:	89 1c 24             	mov    %ebx,(%esp)
5f583c88:	e8 b3 fe ff ff       	call   5f583b40 <_SysKeyboardAImpl_Unacquire@4>
5f583c8d:	8b 43 24             	mov    0x24(%ebx),%eax
5f583c90:	83 c4 0c             	add    $0xc,%esp
5f583c93:	89 1d 70 ea 58 5f    	mov    %ebx,0x5f58ea70
5f583c99:	85 c0                	test   %eax,%eax
5f583c9b:	0f 8f 75 ff ff ff    	jg     5f583c16 <_SysKeyboardAImpl_Acquire@4+0x36>
5f583ca1:	31 c0                	xor    %eax,%eax
5f583ca3:	c7 43 28 00 00 00 00 	movl   $0x0,0x28(%ebx)
5f583caa:	eb aa                	jmp    5f583c56 <_SysKeyboardAImpl_Acquire@4+0x76>
5f583cac:	8d 74 26 00          	lea    0x0(%esi),%esi

5f583cb0 <_SysKeyboardAImpl_SetEventNotification@8>:
5f583cb0:	55                   	push   %ebp
5f583cb1:	89 e5                	mov    %esp,%ebp
5f583cb3:	8b 45 08             	mov    0x8(%ebp),%eax
5f583cb6:	8b 55 0c             	mov    0xc(%ebp),%edx
5f583cb9:	89 50 1c             	mov    %edx,0x1c(%eax)
5f583cbc:	31 c0                	xor    %eax,%eax
5f583cbe:	5d                   	pop    %ebp
5f583cbf:	c2 08 00             	ret    $0x8
5f583cc2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f583cc9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f583cd0 <_SysKeyboardAImpl_GetCapabilities@8>:
5f583cd0:	55                   	push   %ebp
5f583cd1:	b9 57 00 07 80       	mov    $0x80070057,%ecx
5f583cd6:	89 e5                	mov    %esp,%ebp
5f583cd8:	57                   	push   %edi
5f583cd9:	56                   	push   %esi
5f583cda:	53                   	push   %ebx
5f583cdb:	83 ec 3c             	sub    $0x3c,%esp
5f583cde:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f583ce1:	8b 1f                	mov    (%edi),%ebx
5f583ce3:	83 fb 2c             	cmp    $0x2c,%ebx
5f583ce6:	0f 95 c2             	setne  %dl
5f583ce9:	83 fb 18             	cmp    $0x18,%ebx
5f583cec:	0f 95 c0             	setne  %al
5f583cef:	25 ff 00 00 00       	and    $0xff,%eax
5f583cf4:	85 c2                	test   %eax,%edx
5f583cf6:	75 79                	jne    5f583d71 <_SysKeyboardAImpl_GetCapabilities@8+0xa1>
5f583cf8:	8b 45 08             	mov    0x8(%ebp),%eax
5f583cfb:	89 d9                	mov    %ebx,%ecx
5f583cfd:	fc                   	cld    
5f583cfe:	8b 40 18             	mov    0x18(%eax),%eax
5f583d01:	89 5d b8             	mov    %ebx,0xffffffb8(%ebp)
5f583d04:	c7 45 bc 01 00 00 00 	movl   $0x1,0xffffffbc(%ebp)
5f583d0b:	c7 45 c4 00 00 00 00 	movl   $0x0,0xffffffc4(%ebp)
5f583d12:	83 78 0c 07          	cmpl   $0x7,0xc(%eax)
5f583d16:	0f 9f c0             	setg   %al
5f583d19:	25 ff 00 00 00       	and    $0xff,%eax
5f583d1e:	c7 45 c8 00 01 00 00 	movl   $0x100,0xffffffc8(%ebp)
5f583d25:	48                   	dec    %eax
5f583d26:	c7 45 cc 00 00 00 00 	movl   $0x0,0xffffffcc(%ebp)
5f583d2d:	83 e0 f0             	and    $0xfffffff0,%eax
5f583d30:	c7 45 d0 00 00 00 00 	movl   $0x0,0xffffffd0(%ebp)
5f583d37:	83 c0 13             	add    $0x13,%eax
5f583d3a:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
5f583d41:	c1 e9 02             	shr    $0x2,%ecx
5f583d44:	89 45 c0             	mov    %eax,0xffffffc0(%ebp)
5f583d47:	c7 45 d8 64 00 00 00 	movl   $0x64,0xffffffd8(%ebp)
5f583d4e:	c7 45 dc 64 00 00 00 	movl   $0x64,0xffffffdc(%ebp)
5f583d55:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
5f583d5c:	8d 75 b8             	lea    0xffffffb8(%ebp),%esi
5f583d5f:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f583d61:	f6 c3 02             	test   $0x2,%bl
5f583d64:	75 1a                	jne    5f583d80 <_SysKeyboardAImpl_GetCapabilities@8+0xb0>
5f583d66:	83 e3 01             	and    $0x1,%ebx
5f583d69:	74 04                	je     5f583d6f <_SysKeyboardAImpl_GetCapabilities@8+0x9f>
5f583d6b:	8a 06                	mov    (%esi),%al
5f583d6d:	88 07                	mov    %al,(%edi)
5f583d6f:	31 c9                	xor    %ecx,%ecx
5f583d71:	83 c4 3c             	add    $0x3c,%esp
5f583d74:	89 c8                	mov    %ecx,%eax
5f583d76:	5b                   	pop    %ebx
5f583d77:	5e                   	pop    %esi
5f583d78:	5f                   	pop    %edi
5f583d79:	5d                   	pop    %ebp
5f583d7a:	c2 08 00             	ret    $0x8
5f583d7d:	8d 76 00             	lea    0x0(%esi),%esi
5f583d80:	66 8b 06             	mov    (%esi),%ax
5f583d83:	83 c6 02             	add    $0x2,%esi
5f583d86:	66 89 07             	mov    %ax,(%edi)
5f583d89:	83 c7 02             	add    $0x2,%edi
5f583d8c:	eb d8                	jmp    5f583d66 <_SysKeyboardAImpl_GetCapabilities@8+0x96>
5f583d8e:	89 f6                	mov    %esi,%esi

5f583d90 <_SysKeyboardAImpl_GetObjectInfo@16>:
5f583d90:	55                   	push   %ebp
5f583d91:	89 e5                	mov    %esp,%ebp
5f583d93:	57                   	push   %edi
5f583d94:	56                   	push   %esi
5f583d95:	53                   	push   %ebx
5f583d96:	81 ec 4c 01 00 00    	sub    $0x14c,%esp
5f583d9c:	8b 45 0c             	mov    0xc(%ebp),%eax
5f583d9f:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f583da2:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
5f583da6:	8b 30                	mov    (%eax),%esi
5f583da8:	0f 84 ee 00 00 00    	je     5f583e9c <_SysKeyboardAImpl_GetObjectInfo@16+0x10c>
5f583dae:	fc                   	cld    
5f583daf:	89 f1                	mov    %esi,%ecx
5f583db1:	31 c0                	xor    %eax,%eax
5f583db3:	c1 e9 02             	shr    $0x2,%ecx
5f583db6:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f583db9:	f3 ab                	repz stos %eax,%es:(%edi)
5f583dbb:	f7 c6 02 00 00 00    	test   $0x2,%esi
5f583dc1:	0f 85 e1 00 00 00    	jne    5f583ea8 <_SysKeyboardAImpl_GetObjectInfo@16+0x118>
5f583dc7:	f7 c6 01 00 00 00    	test   $0x1,%esi
5f583dcd:	74 03                	je     5f583dd2 <_SysKeyboardAImpl_GetObjectInfo@16+0x42>
5f583dcf:	c6 07 00             	movb   $0x0,(%edi)
5f583dd2:	8d bd a8 fe ff ff    	lea    0xfffffea8(%ebp),%edi
5f583dd8:	50                   	push   %eax
5f583dd9:	68 3c 01 00 00       	push   $0x13c
5f583dde:	6a 00                	push   $0x0
5f583de0:	57                   	push   %edi
5f583de1:	e8 6a 37 00 00       	call   5f587550 <_memset>
5f583de6:	a1 e0 cc 58 5f       	mov    0x5f58cce0,%eax
5f583deb:	89 85 ac fe ff ff    	mov    %eax,0xfffffeac(%ebp)
5f583df1:	a1 e4 cc 58 5f       	mov    0x5f58cce4,%eax
5f583df6:	89 85 b0 fe ff ff    	mov    %eax,0xfffffeb0(%ebp)
5f583dfc:	a1 e8 cc 58 5f       	mov    0x5f58cce8,%eax
5f583e01:	89 85 b4 fe ff ff    	mov    %eax,0xfffffeb4(%ebp)
5f583e07:	a1 ec cc 58 5f       	mov    0x5f58ccec,%eax
5f583e0c:	89 85 b8 fe ff ff    	mov    %eax,0xfffffeb8(%ebp)
5f583e12:	89 d8                	mov    %ebx,%eax
5f583e14:	25 ff ff 00 00       	and    $0xffff,%eax
5f583e19:	83 c4 0c             	add    $0xc,%esp
5f583e1c:	c1 e0 08             	shl    $0x8,%eax
5f583e1f:	89 9d bc fe ff ff    	mov    %ebx,0xfffffebc(%ebp)
5f583e25:	83 c8 0c             	or     $0xc,%eax
5f583e28:	68 04 01 00 00       	push   $0x104
5f583e2d:	89 85 c0 fe ff ff    	mov    %eax,0xfffffec0(%ebp)
5f583e33:	8d 85 c8 fe ff ff    	lea    0xfffffec8(%ebp),%eax
5f583e39:	50                   	push   %eax
5f583e3a:	89 d8                	mov    %ebx,%eax
5f583e3c:	83 e0 7f             	and    $0x7f,%eax
5f583e3f:	81 e3 80 00 00 00    	and    $0x80,%ebx
5f583e45:	c1 e0 10             	shl    $0x10,%eax
5f583e48:	89 b5 a8 fe ff ff    	mov    %esi,0xfffffea8(%ebp)
5f583e4e:	c1 e3 11             	shl    $0x11,%ebx
5f583e51:	09 d8                	or     %ebx,%eax
5f583e53:	50                   	push   %eax
5f583e54:	e8 87 27 00 00       	call   5f5865e0 <_GetKeyNameTextA@12>
5f583e59:	89 f2                	mov    %esi,%edx
5f583e5b:	5e                   	pop    %esi
5f583e5c:	81 fa 3c 01 00 00    	cmp    $0x13c,%edx
5f583e62:	76 05                	jbe    5f583e69 <_SysKeyboardAImpl_GetObjectInfo@16+0xd9>
5f583e64:	ba 3c 01 00 00       	mov    $0x13c,%edx
5f583e69:	fc                   	cld    
5f583e6a:	89 d1                	mov    %edx,%ecx
5f583e6c:	89 fe                	mov    %edi,%esi
5f583e6e:	c1 e9 02             	shr    $0x2,%ecx
5f583e71:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f583e74:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f583e76:	f6 c2 02             	test   $0x2,%dl
5f583e79:	74 0c                	je     5f583e87 <_SysKeyboardAImpl_GetObjectInfo@16+0xf7>
5f583e7b:	66 8b 06             	mov    (%esi),%ax
5f583e7e:	83 c6 02             	add    $0x2,%esi
5f583e81:	66 89 07             	mov    %ax,(%edi)
5f583e84:	83 c7 02             	add    $0x2,%edi
5f583e87:	83 e2 01             	and    $0x1,%edx
5f583e8a:	74 04                	je     5f583e90 <_SysKeyboardAImpl_GetObjectInfo@16+0x100>
5f583e8c:	8a 06                	mov    (%esi),%al
5f583e8e:	88 07                	mov    %al,(%edi)
5f583e90:	83 ec 0c             	sub    $0xc,%esp
5f583e93:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f583e96:	53                   	push   %ebx
5f583e97:	e8 84 d3 ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
5f583e9c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f583e9f:	31 c0                	xor    %eax,%eax
5f583ea1:	5b                   	pop    %ebx
5f583ea2:	5e                   	pop    %esi
5f583ea3:	5f                   	pop    %edi
5f583ea4:	5d                   	pop    %ebp
5f583ea5:	c2 10 00             	ret    $0x10
5f583ea8:	66 c7 07 00 00       	movw   $0x0,(%edi)
5f583ead:	83 c7 02             	add    $0x2,%edi
5f583eb0:	e9 12 ff ff ff       	jmp    5f583dc7 <_SysKeyboardAImpl_GetObjectInfo@16+0x37>
5f583eb5:	8d 74 26 00          	lea    0x0(%esi),%esi
5f583eb9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f583ec0 <_SysKeyboardWImpl_GetObjectInfo@16>:
5f583ec0:	55                   	push   %ebp
5f583ec1:	89 e5                	mov    %esp,%ebp
5f583ec3:	57                   	push   %edi
5f583ec4:	56                   	push   %esi
5f583ec5:	53                   	push   %ebx
5f583ec6:	81 ec 4c 02 00 00    	sub    $0x24c,%esp
5f583ecc:	8b 45 0c             	mov    0xc(%ebp),%eax
5f583ecf:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f583ed2:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
5f583ed6:	8b 30                	mov    (%eax),%esi
5f583ed8:	0f 84 ee 00 00 00    	je     5f583fcc <_SysKeyboardWImpl_GetObjectInfo@16+0x10c>
5f583ede:	fc                   	cld    
5f583edf:	89 f1                	mov    %esi,%ecx
5f583ee1:	31 c0                	xor    %eax,%eax
5f583ee3:	c1 e9 02             	shr    $0x2,%ecx
5f583ee6:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f583ee9:	f3 ab                	repz stos %eax,%es:(%edi)
5f583eeb:	f7 c6 02 00 00 00    	test   $0x2,%esi
5f583ef1:	0f 85 e1 00 00 00    	jne    5f583fd8 <_SysKeyboardWImpl_GetObjectInfo@16+0x118>
5f583ef7:	f7 c6 01 00 00 00    	test   $0x1,%esi
5f583efd:	74 03                	je     5f583f02 <_SysKeyboardWImpl_GetObjectInfo@16+0x42>
5f583eff:	c6 07 00             	movb   $0x0,(%edi)
5f583f02:	8d bd a8 fd ff ff    	lea    0xfffffda8(%ebp),%edi
5f583f08:	50                   	push   %eax
5f583f09:	68 40 02 00 00       	push   $0x240
5f583f0e:	6a 00                	push   $0x0
5f583f10:	57                   	push   %edi
5f583f11:	e8 3a 36 00 00       	call   5f587550 <_memset>
5f583f16:	a1 e0 cc 58 5f       	mov    0x5f58cce0,%eax
5f583f1b:	89 85 ac fd ff ff    	mov    %eax,0xfffffdac(%ebp)
5f583f21:	a1 e4 cc 58 5f       	mov    0x5f58cce4,%eax
5f583f26:	89 85 b0 fd ff ff    	mov    %eax,0xfffffdb0(%ebp)
5f583f2c:	a1 e8 cc 58 5f       	mov    0x5f58cce8,%eax
5f583f31:	89 85 b4 fd ff ff    	mov    %eax,0xfffffdb4(%ebp)
5f583f37:	a1 ec cc 58 5f       	mov    0x5f58ccec,%eax
5f583f3c:	89 85 b8 fd ff ff    	mov    %eax,0xfffffdb8(%ebp)
5f583f42:	89 d8                	mov    %ebx,%eax
5f583f44:	25 ff ff 00 00       	and    $0xffff,%eax
5f583f49:	83 c4 0c             	add    $0xc,%esp
5f583f4c:	c1 e0 08             	shl    $0x8,%eax
5f583f4f:	89 9d bc fd ff ff    	mov    %ebx,0xfffffdbc(%ebp)
5f583f55:	83 c8 0c             	or     $0xc,%eax
5f583f58:	68 08 02 00 00       	push   $0x208
5f583f5d:	89 85 c0 fd ff ff    	mov    %eax,0xfffffdc0(%ebp)
5f583f63:	8d 85 c8 fd ff ff    	lea    0xfffffdc8(%ebp),%eax
5f583f69:	50                   	push   %eax
5f583f6a:	89 d8                	mov    %ebx,%eax
5f583f6c:	83 e0 7f             	and    $0x7f,%eax
5f583f6f:	81 e3 80 00 00 00    	and    $0x80,%ebx
5f583f75:	c1 e0 10             	shl    $0x10,%eax
5f583f78:	89 b5 a8 fd ff ff    	mov    %esi,0xfffffda8(%ebp)
5f583f7e:	c1 e3 11             	shl    $0x11,%ebx
5f583f81:	09 d8                	or     %ebx,%eax
5f583f83:	50                   	push   %eax
5f583f84:	e8 67 26 00 00       	call   5f5865f0 <_GetKeyNameTextW@12>
5f583f89:	89 f2                	mov    %esi,%edx
5f583f8b:	58                   	pop    %eax
5f583f8c:	81 fe 40 02 00 00    	cmp    $0x240,%esi
5f583f92:	76 05                	jbe    5f583f99 <_SysKeyboardWImpl_GetObjectInfo@16+0xd9>
5f583f94:	ba 40 02 00 00       	mov    $0x240,%edx
5f583f99:	fc                   	cld    
5f583f9a:	89 d1                	mov    %edx,%ecx
5f583f9c:	89 fe                	mov    %edi,%esi
5f583f9e:	c1 e9 02             	shr    $0x2,%ecx
5f583fa1:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f583fa4:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f583fa6:	f6 c2 02             	test   $0x2,%dl
5f583fa9:	74 0c                	je     5f583fb7 <_SysKeyboardWImpl_GetObjectInfo@16+0xf7>
5f583fab:	66 8b 06             	mov    (%esi),%ax
5f583fae:	83 c6 02             	add    $0x2,%esi
5f583fb1:	66 89 07             	mov    %ax,(%edi)
5f583fb4:	83 c7 02             	add    $0x2,%edi
5f583fb7:	83 e2 01             	and    $0x1,%edx
5f583fba:	74 04                	je     5f583fc0 <_SysKeyboardWImpl_GetObjectInfo@16+0x100>
5f583fbc:	8a 06                	mov    (%esi),%al
5f583fbe:	88 07                	mov    %al,(%edi)
5f583fc0:	83 ec 0c             	sub    $0xc,%esp
5f583fc3:	8b 45 0c             	mov    0xc(%ebp),%eax
5f583fc6:	50                   	push   %eax
5f583fc7:	e8 64 d2 ff ff       	call   5f581230 <__dump_OBJECTINSTANCEW>
5f583fcc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f583fcf:	31 c0                	xor    %eax,%eax
5f583fd1:	5b                   	pop    %ebx
5f583fd2:	5e                   	pop    %esi
5f583fd3:	5f                   	pop    %edi
5f583fd4:	5d                   	pop    %ebp
5f583fd5:	c2 10 00             	ret    $0x10
5f583fd8:	66 c7 07 00 00       	movw   $0x0,(%edi)
5f583fdd:	83 c7 02             	add    $0x2,%edi
5f583fe0:	e9 12 ff ff ff       	jmp    5f583ef7 <_SysKeyboardWImpl_GetObjectInfo@16+0x37>
5f583fe5:	8d 74 26 00          	lea    0x0(%esi),%esi
5f583fe9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f583ff0 <_SysKeyboardAImpl_GetDeviceInfo@8>:
5f583ff0:	55                   	push   %ebp
5f583ff1:	89 e5                	mov    %esp,%ebp
5f583ff3:	50                   	push   %eax
5f583ff4:	50                   	push   %eax
5f583ff5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f583ff8:	81 39 44 02 00 00    	cmpl   $0x244,(%ecx)
5f583ffe:	74 06                	je     5f584006 <_SysKeyboardAImpl_GetDeviceInfo@8+0x16>
5f584000:	31 c0                	xor    %eax,%eax
5f584002:	c9                   	leave  
5f584003:	c2 08 00             	ret    $0x8
5f584006:	8b 45 08             	mov    0x8(%ebp),%eax
5f584009:	8b 40 18             	mov    0x18(%eax),%eax
5f58400c:	8b 50 0c             	mov    0xc(%eax),%edx
5f58400f:	89 c8                	mov    %ecx,%eax
5f584011:	e8 1a f2 ff ff       	call   5f583230 <_fill_keyboard_dideviceinstanceA>
5f584016:	31 c0                	xor    %eax,%eax
5f584018:	c9                   	leave  
5f584019:	c2 08 00             	ret    $0x8
5f58401c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f584020 <_SysKeyboardWImpl_GetDeviceInfo@8>:
5f584020:	55                   	push   %ebp
5f584021:	89 e5                	mov    %esp,%ebp
5f584023:	50                   	push   %eax
5f584024:	50                   	push   %eax
5f584025:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f584028:	81 39 4c 04 00 00    	cmpl   $0x44c,(%ecx)
5f58402e:	74 06                	je     5f584036 <_SysKeyboardWImpl_GetDeviceInfo@8+0x16>
5f584030:	31 c0                	xor    %eax,%eax
5f584032:	c9                   	leave  
5f584033:	c2 08 00             	ret    $0x8
5f584036:	8b 45 08             	mov    0x8(%ebp),%eax
5f584039:	8b 40 18             	mov    0x18(%eax),%eax
5f58403c:	8b 50 0c             	mov    0xc(%eax),%edx
5f58403f:	89 c8                	mov    %ecx,%eax
5f584041:	e8 4a f3 ff ff       	call   5f583390 <_fill_keyboard_dideviceinstanceW>
5f584046:	31 c0                	xor    %eax,%eax
5f584048:	c9                   	leave  
5f584049:	c2 08 00             	ret    $0x8
5f58404c:	90                   	nop    
5f58404d:	90                   	nop    
5f58404e:	90                   	nop    
5f58404f:	90                   	nop    

5f584050 <_fill_mouse_dideviceinstanceA>:
5f584050:	55                   	push   %ebp
5f584051:	89 e5                	mov    %esp,%ebp
5f584053:	57                   	push   %edi
5f584054:	56                   	push   %esi
5f584055:	53                   	push   %ebx
5f584056:	81 ec 6c 02 00 00    	sub    $0x26c,%esp
5f58405c:	89 c3                	mov    %eax,%ebx
5f58405e:	8b 30                	mov    (%eax),%esi
5f584060:	89 df                	mov    %ebx,%edi
5f584062:	fc                   	cld    
5f584063:	89 f1                	mov    %esi,%ecx
5f584065:	31 c0                	xor    %eax,%eax
5f584067:	c1 e9 02             	shr    $0x2,%ecx
5f58406a:	89 95 94 fd ff ff    	mov    %edx,0xfffffd94(%ebp)
5f584070:	f7 c6 02 00 00 00    	test   $0x2,%esi
5f584076:	f3 ab                	repz stos %eax,%es:(%edi)
5f584078:	74 08                	je     5f584082 <_fill_mouse_dideviceinstanceA+0x32>
5f58407a:	66 c7 07 00 00       	movw   $0x0,(%edi)
5f58407f:	83 c7 02             	add    $0x2,%edi
5f584082:	f7 c6 01 00 00 00    	test   $0x1,%esi
5f584088:	74 03                	je     5f58408d <_fill_mouse_dideviceinstanceA+0x3d>
5f58408a:	c6 07 00             	movb   $0x0,(%edi)
5f58408d:	50                   	push   %eax
5f58408e:	8d 85 98 fd ff ff    	lea    0xfffffd98(%ebp),%eax
5f584094:	68 44 02 00 00       	push   $0x244
5f584099:	6a 00                	push   $0x0
5f58409b:	50                   	push   %eax
5f58409c:	e8 af 34 00 00       	call   5f587550 <_memset>
5f5840a1:	a1 40 ca 58 5f       	mov    0x5f58ca40,%eax
5f5840a6:	89 85 9c fd ff ff    	mov    %eax,0xfffffd9c(%ebp)
5f5840ac:	a1 44 ca 58 5f       	mov    0x5f58ca44,%eax
5f5840b1:	89 85 a0 fd ff ff    	mov    %eax,0xfffffda0(%ebp)
5f5840b7:	a1 48 ca 58 5f       	mov    0x5f58ca48,%eax
5f5840bc:	89 85 a4 fd ff ff    	mov    %eax,0xfffffda4(%ebp)
5f5840c2:	a1 4c ca 58 5f       	mov    0x5f58ca4c,%eax
5f5840c7:	89 85 a8 fd ff ff    	mov    %eax,0xfffffda8(%ebp)
5f5840cd:	a1 40 91 58 5f       	mov    0x5f589140,%eax
5f5840d2:	89 85 ac fd ff ff    	mov    %eax,0xfffffdac(%ebp)
5f5840d8:	a1 44 91 58 5f       	mov    0x5f589144,%eax
5f5840dd:	89 85 b0 fd ff ff    	mov    %eax,0xfffffdb0(%ebp)
5f5840e3:	a1 48 91 58 5f       	mov    0x5f589148,%eax
5f5840e8:	89 85 b4 fd ff ff    	mov    %eax,0xfffffdb4(%ebp)
5f5840ee:	a1 4c 91 58 5f       	mov    0x5f58914c,%eax
5f5840f3:	89 85 b8 fd ff ff    	mov    %eax,0xfffffdb8(%ebp)
5f5840f9:	83 c4 10             	add    $0x10,%esp
5f5840fc:	83 bd 94 fd ff ff 08 	cmpl   $0x8,0xfffffd94(%ebp)
5f584103:	0f 9d c0             	setge  %al
5f584106:	25 ff 00 00 00       	and    $0xff,%eax
5f58410b:	89 b5 98 fd ff ff    	mov    %esi,0xfffffd98(%ebp)
5f584111:	48                   	dec    %eax
5f584112:	c7 85 c0 fd ff ff 4d 	movl   $0x73756f4d,0xfffffdc0(%ebp)
5f584119:	6f 75 73 
5f58411c:	83 e0 f0             	and    $0xfffffff0,%eax
5f58411f:	66 c7 85 c4 fd ff ff 	movw   $0x65,0xfffffdc4(%ebp)
5f584126:	65 00 
5f584128:	05 12 02 00 00       	add    $0x212,%eax
5f58412d:	c7 85 c4 fe ff ff 57 	movl   $0x656e6957,0xfffffec4(%ebp)
5f584134:	69 6e 65 
5f584137:	89 85 bc fd ff ff    	mov    %eax,0xfffffdbc(%ebp)
5f58413d:	c7 85 c8 fe ff ff 20 	movl   $0x756f4d20,0xfffffec8(%ebp)
5f584144:	4d 6f 75 
5f584147:	66 c7 85 cc fe ff ff 	movw   $0x6573,0xfffffecc(%ebp)
5f58414e:	73 65 
5f584150:	c6 85 ce fe ff ff 00 	movb   $0x0,0xfffffece(%ebp)
5f584157:	89 f2                	mov    %esi,%edx
5f584159:	81 fe 44 02 00 00    	cmp    $0x244,%esi
5f58415f:	76 05                	jbe    5f584166 <_fill_mouse_dideviceinstanceA+0x116>
5f584161:	ba 44 02 00 00       	mov    $0x244,%edx
5f584166:	fc                   	cld    
5f584167:	89 d1                	mov    %edx,%ecx
5f584169:	89 df                	mov    %ebx,%edi
5f58416b:	c1 e9 02             	shr    $0x2,%ecx
5f58416e:	8d b5 98 fd ff ff    	lea    0xfffffd98(%ebp),%esi
5f584174:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f584176:	f6 c2 02             	test   $0x2,%dl
5f584179:	74 0c                	je     5f584187 <_fill_mouse_dideviceinstanceA+0x137>
5f58417b:	66 8b 06             	mov    (%esi),%ax
5f58417e:	83 c6 02             	add    $0x2,%esi
5f584181:	66 89 07             	mov    %ax,(%edi)
5f584184:	83 c7 02             	add    $0x2,%edi
5f584187:	83 e2 01             	and    $0x1,%edx
5f58418a:	74 04                	je     5f584190 <_fill_mouse_dideviceinstanceA+0x140>
5f58418c:	8a 06                	mov    (%esi),%al
5f58418e:	88 07                	mov    %al,(%edi)
5f584190:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f584193:	5b                   	pop    %ebx
5f584194:	5e                   	pop    %esi
5f584195:	5f                   	pop    %edi
5f584196:	5d                   	pop    %ebp
5f584197:	c3                   	ret    
5f584198:	90                   	nop    
5f584199:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f5841a0 <_fill_mouse_dideviceinstanceW>:
5f5841a0:	55                   	push   %ebp
5f5841a1:	89 e5                	mov    %esp,%ebp
5f5841a3:	57                   	push   %edi
5f5841a4:	56                   	push   %esi
5f5841a5:	53                   	push   %ebx
5f5841a6:	81 ec 6c 04 00 00    	sub    $0x46c,%esp
5f5841ac:	89 c3                	mov    %eax,%ebx
5f5841ae:	8b 30                	mov    (%eax),%esi
5f5841b0:	89 df                	mov    %ebx,%edi
5f5841b2:	fc                   	cld    
5f5841b3:	89 f1                	mov    %esi,%ecx
5f5841b5:	31 c0                	xor    %eax,%eax
5f5841b7:	c1 e9 02             	shr    $0x2,%ecx
5f5841ba:	89 95 94 fb ff ff    	mov    %edx,0xfffffb94(%ebp)
5f5841c0:	f7 c6 02 00 00 00    	test   $0x2,%esi
5f5841c6:	f3 ab                	repz stos %eax,%es:(%edi)
5f5841c8:	74 08                	je     5f5841d2 <_fill_mouse_dideviceinstanceW+0x32>
5f5841ca:	66 c7 07 00 00       	movw   $0x0,(%edi)
5f5841cf:	83 c7 02             	add    $0x2,%edi
5f5841d2:	f7 c6 01 00 00 00    	test   $0x1,%esi
5f5841d8:	74 03                	je     5f5841dd <_fill_mouse_dideviceinstanceW+0x3d>
5f5841da:	c6 07 00             	movb   $0x0,(%edi)
5f5841dd:	50                   	push   %eax
5f5841de:	8d 85 98 fb ff ff    	lea    0xfffffb98(%ebp),%eax
5f5841e4:	68 4c 04 00 00       	push   $0x44c
5f5841e9:	6a 00                	push   $0x0
5f5841eb:	50                   	push   %eax
5f5841ec:	e8 5f 33 00 00       	call   5f587550 <_memset>
5f5841f1:	a1 40 ca 58 5f       	mov    0x5f58ca40,%eax
5f5841f6:	89 85 9c fb ff ff    	mov    %eax,0xfffffb9c(%ebp)
5f5841fc:	a1 44 ca 58 5f       	mov    0x5f58ca44,%eax
5f584201:	89 85 a0 fb ff ff    	mov    %eax,0xfffffba0(%ebp)
5f584207:	a1 48 ca 58 5f       	mov    0x5f58ca48,%eax
5f58420c:	89 85 a4 fb ff ff    	mov    %eax,0xfffffba4(%ebp)
5f584212:	a1 4c ca 58 5f       	mov    0x5f58ca4c,%eax
5f584217:	89 85 a8 fb ff ff    	mov    %eax,0xfffffba8(%ebp)
5f58421d:	a1 40 91 58 5f       	mov    0x5f589140,%eax
5f584222:	89 85 ac fb ff ff    	mov    %eax,0xfffffbac(%ebp)
5f584228:	a1 44 91 58 5f       	mov    0x5f589144,%eax
5f58422d:	89 85 b0 fb ff ff    	mov    %eax,0xfffffbb0(%ebp)
5f584233:	a1 48 91 58 5f       	mov    0x5f589148,%eax
5f584238:	89 85 b4 fb ff ff    	mov    %eax,0xfffffbb4(%ebp)
5f58423e:	a1 4c 91 58 5f       	mov    0x5f58914c,%eax
5f584243:	83 bd 94 fb ff ff 08 	cmpl   $0x8,0xfffffb94(%ebp)
5f58424a:	89 85 b8 fb ff ff    	mov    %eax,0xfffffbb8(%ebp)
5f584250:	5f                   	pop    %edi
5f584251:	58                   	pop    %eax
5f584252:	89 b5 98 fb ff ff    	mov    %esi,0xfffffb98(%ebp)
5f584258:	0f 9d c0             	setge  %al
5f58425b:	25 ff 00 00 00       	and    $0xff,%eax
5f584260:	68 04 01 00 00       	push   $0x104
5f584265:	48                   	dec    %eax
5f584266:	83 e0 f0             	and    $0xfffffff0,%eax
5f584269:	05 12 02 00 00       	add    $0x212,%eax
5f58426e:	89 85 bc fb ff ff    	mov    %eax,0xfffffbbc(%ebp)
5f584274:	8d 85 c0 fb ff ff    	lea    0xfffffbc0(%ebp),%eax
5f58427a:	50                   	push   %eax
5f58427b:	6a ff                	push   $0xffffffff
5f58427d:	68 70 b2 58 5f       	push   $0x5f58b270
5f584282:	6a 00                	push   $0x0
5f584284:	6a 00                	push   $0x0
5f584286:	e8 b5 24 00 00       	call   5f586740 <_MultiByteToWideChar@24>
5f58428b:	8d 85 c8 fd ff ff    	lea    0xfffffdc8(%ebp),%eax
5f584291:	68 04 01 00 00       	push   $0x104
5f584296:	50                   	push   %eax
5f584297:	6a ff                	push   $0xffffffff
5f584299:	68 76 b2 58 5f       	push   $0x5f58b276
5f58429e:	6a 00                	push   $0x0
5f5842a0:	6a 00                	push   $0x0
5f5842a2:	e8 99 24 00 00       	call   5f586740 <_MultiByteToWideChar@24>
5f5842a7:	89 f2                	mov    %esi,%edx
5f5842a9:	59                   	pop    %ecx
5f5842aa:	81 fa 4c 04 00 00    	cmp    $0x44c,%edx
5f5842b0:	5e                   	pop    %esi
5f5842b1:	76 05                	jbe    5f5842b8 <_fill_mouse_dideviceinstanceW+0x118>
5f5842b3:	ba 4c 04 00 00       	mov    $0x44c,%edx
5f5842b8:	fc                   	cld    
5f5842b9:	89 d1                	mov    %edx,%ecx
5f5842bb:	89 df                	mov    %ebx,%edi
5f5842bd:	c1 e9 02             	shr    $0x2,%ecx
5f5842c0:	8d b5 98 fb ff ff    	lea    0xfffffb98(%ebp),%esi
5f5842c6:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f5842c8:	f6 c2 02             	test   $0x2,%dl
5f5842cb:	74 0c                	je     5f5842d9 <_fill_mouse_dideviceinstanceW+0x139>
5f5842cd:	66 8b 06             	mov    (%esi),%ax
5f5842d0:	83 c6 02             	add    $0x2,%esi
5f5842d3:	66 89 07             	mov    %ax,(%edi)
5f5842d6:	83 c7 02             	add    $0x2,%edi
5f5842d9:	83 e2 01             	and    $0x1,%edx
5f5842dc:	74 04                	je     5f5842e2 <_fill_mouse_dideviceinstanceW+0x142>
5f5842de:	8a 06                	mov    (%esi),%al
5f5842e0:	88 07                	mov    %al,(%edi)
5f5842e2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5842e5:	5b                   	pop    %ebx
5f5842e6:	5e                   	pop    %esi
5f5842e7:	5f                   	pop    %edi
5f5842e8:	5d                   	pop    %ebp
5f5842e9:	c3                   	ret    
5f5842ea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f5842f0 <_mousedev_enum_deviceA>:
5f5842f0:	55                   	push   %ebp
5f5842f1:	89 e5                	mov    %esp,%ebp
5f5842f3:	53                   	push   %ebx
5f5842f4:	50                   	push   %eax
5f5842f5:	31 c0                	xor    %eax,%eax
5f5842f7:	8b 5d 18             	mov    0x18(%ebp),%ebx
5f5842fa:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f5842fd:	8b 55 14             	mov    0x14(%ebp),%edx
5f584300:	85 db                	test   %ebx,%ebx
5f584302:	75 39                	jne    5f58433d <_mousedev_enum_deviceA+0x4d>
5f584304:	85 c9                	test   %ecx,%ecx
5f584306:	74 28                	je     5f584330 <_mousedev_enum_deviceA+0x40>
5f584308:	83 f9 02             	cmp    $0x2,%ecx
5f58430b:	0f 94 c0             	sete   %al
5f58430e:	31 db                	xor    %ebx,%ebx
5f584310:	83 fa 07             	cmp    $0x7,%edx
5f584313:	88 c3                	mov    %al,%bl
5f584315:	0f 9e c0             	setle  %al
5f584318:	85 d8                	test   %ebx,%eax
5f58431a:	75 14                	jne    5f584330 <_mousedev_enum_deviceA+0x40>
5f58431c:	83 f9 12             	cmp    $0x12,%ecx
5f58431f:	0f 94 c0             	sete   %al
5f584322:	25 ff 00 00 00       	and    $0xff,%eax
5f584327:	09 c3                	or     %eax,%ebx
5f584329:	74 16                	je     5f584341 <_mousedev_enum_deviceA+0x51>
5f58432b:	83 fa 07             	cmp    $0x7,%edx
5f58432e:	7e 11                	jle    5f584341 <_mousedev_enum_deviceA+0x51>
5f584330:	8b 45 10             	mov    0x10(%ebp),%eax
5f584333:	e8 18 fd ff ff       	call   5f584050 <_fill_mouse_dideviceinstanceA>
5f584338:	b8 01 00 00 00       	mov    $0x1,%eax
5f58433d:	5a                   	pop    %edx
5f58433e:	5b                   	pop    %ebx
5f58433f:	5d                   	pop    %ebp
5f584340:	c3                   	ret    
5f584341:	31 c0                	xor    %eax,%eax
5f584343:	5a                   	pop    %edx
5f584344:	5b                   	pop    %ebx
5f584345:	5d                   	pop    %ebp
5f584346:	c3                   	ret    
5f584347:	89 f6                	mov    %esi,%esi
5f584349:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f584350 <_mousedev_enum_deviceW>:
5f584350:	55                   	push   %ebp
5f584351:	89 e5                	mov    %esp,%ebp
5f584353:	53                   	push   %ebx
5f584354:	50                   	push   %eax
5f584355:	31 c0                	xor    %eax,%eax
5f584357:	8b 5d 18             	mov    0x18(%ebp),%ebx
5f58435a:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f58435d:	8b 55 14             	mov    0x14(%ebp),%edx
5f584360:	85 db                	test   %ebx,%ebx
5f584362:	75 39                	jne    5f58439d <_mousedev_enum_deviceW+0x4d>
5f584364:	85 c9                	test   %ecx,%ecx
5f584366:	74 28                	je     5f584390 <_mousedev_enum_deviceW+0x40>
5f584368:	83 f9 02             	cmp    $0x2,%ecx
5f58436b:	0f 94 c0             	sete   %al
5f58436e:	31 db                	xor    %ebx,%ebx
5f584370:	83 fa 07             	cmp    $0x7,%edx
5f584373:	88 c3                	mov    %al,%bl
5f584375:	0f 9e c0             	setle  %al
5f584378:	85 d8                	test   %ebx,%eax
5f58437a:	75 14                	jne    5f584390 <_mousedev_enum_deviceW+0x40>
5f58437c:	83 f9 12             	cmp    $0x12,%ecx
5f58437f:	0f 94 c0             	sete   %al
5f584382:	25 ff 00 00 00       	and    $0xff,%eax
5f584387:	09 c3                	or     %eax,%ebx
5f584389:	74 16                	je     5f5843a1 <_mousedev_enum_deviceW+0x51>
5f58438b:	83 fa 07             	cmp    $0x7,%edx
5f58438e:	7e 11                	jle    5f5843a1 <_mousedev_enum_deviceW+0x51>
5f584390:	8b 45 10             	mov    0x10(%ebp),%eax
5f584393:	e8 08 fe ff ff       	call   5f5841a0 <_fill_mouse_dideviceinstanceW>
5f584398:	b8 01 00 00 00       	mov    $0x1,%eax
5f58439d:	5a                   	pop    %edx
5f58439e:	5b                   	pop    %ebx
5f58439f:	5d                   	pop    %ebp
5f5843a0:	c3                   	ret    
5f5843a1:	31 c0                	xor    %eax,%eax
5f5843a3:	5a                   	pop    %edx
5f5843a4:	5b                   	pop    %ebx
5f5843a5:	5d                   	pop    %ebp
5f5843a6:	c3                   	ret    
5f5843a7:	89 f6                	mov    %esi,%esi
5f5843a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5843b0 <_alloc_device_mouse>:
5f5843b0:	55                   	push   %ebp
5f5843b1:	89 e5                	mov    %esp,%ebp
5f5843b3:	57                   	push   %edi
5f5843b4:	56                   	push   %esi
5f5843b5:	53                   	push   %ebx
5f5843b6:	83 ec 30             	sub    $0x30,%esp
5f5843b9:	89 c6                	mov    %eax,%esi
5f5843bb:	89 d7                	mov    %edx,%edi
5f5843bd:	c7 45 c8 00 00 00 00 	movl   $0x0,0xffffffc8(%ebp)
5f5843c4:	68 b4 00 00 00       	push   $0xb4
5f5843c9:	c7 45 cc 04 00 00 00 	movl   $0x4,0xffffffcc(%ebp)
5f5843d0:	6a 08                	push   $0x8
5f5843d2:	c7 45 d0 08 00 00 00 	movl   $0x8,0xffffffd0(%ebp)
5f5843d9:	c7 45 d4 0c 00 00 00 	movl   $0xc,0xffffffd4(%ebp)
5f5843e0:	c7 45 d8 0d 00 00 00 	movl   $0xd,0xffffffd8(%ebp)
5f5843e7:	c7 45 dc 0e 00 00 00 	movl   $0xe,0xffffffdc(%ebp)
5f5843ee:	50                   	push   %eax
5f5843ef:	e8 1c 23 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5843f4:	89 04 24             	mov    %eax,(%esp)
5f5843f7:	e8 34 23 00 00       	call   5f586730 <_HeapAlloc@12>
5f5843fc:	89 c3                	mov    %eax,%ebx
5f5843fe:	89 38                	mov    %edi,(%eax)
5f584400:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
5f584407:	8b 06                	mov    (%esi),%eax
5f584409:	89 43 08             	mov    %eax,0x8(%ebx)
5f58440c:	8b 46 04             	mov    0x4(%esi),%eax
5f58440f:	89 43 0c             	mov    %eax,0xc(%ebx)
5f584412:	8b 46 08             	mov    0x8(%esi),%eax
5f584415:	89 43 10             	mov    %eax,0x10(%ebx)
5f584418:	8b 46 0c             	mov    0xc(%esi),%eax
5f58441b:	c7 43 1c e4 b1 58 5f 	movl   $0x5f58b1e4,0x1c(%ebx)
5f584422:	89 43 14             	mov    %eax,0x14(%ebx)
5f584425:	8b 45 c8             	mov    0xffffffc8(%ebp),%eax
5f584428:	89 43 24             	mov    %eax,0x24(%ebx)
5f58442b:	8b 45 cc             	mov    0xffffffcc(%ebp),%eax
5f58442e:	89 43 28             	mov    %eax,0x28(%ebx)
5f584431:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
5f584434:	89 43 2c             	mov    %eax,0x2c(%ebx)
5f584437:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
5f58443a:	89 43 30             	mov    %eax,0x30(%ebx)
5f58443d:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
5f584440:	89 43 34             	mov    %eax,0x34(%ebx)
5f584443:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
5f584446:	89 43 38             	mov    %eax,0x38(%ebx)
5f584449:	6a 0c                	push   $0xc
5f58444b:	6a 00                	push   $0x0
5f58444d:	50                   	push   %eax
5f58444e:	e8 bd 22 00 00       	call   5f586710 <_GetProcessHeap@0>
5f584453:	89 04 24             	mov    %eax,(%esp)
5f584456:	e8 d5 22 00 00       	call   5f586730 <_HeapAlloc@12>
5f58445b:	8b 15 f0 b1 58 5f    	mov    0x5f58b1f0,%edx
5f584461:	89 43 20             	mov    %eax,0x20(%ebx)
5f584464:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
5f58446a:	89 50 04             	mov    %edx,0x4(%eax)
5f58446d:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
5f584474:	8b 45 08             	mov    0x8(%ebp),%eax
5f584477:	89 43 18             	mov    %eax,0x18(%ebx)
5f58447a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58447d:	89 d8                	mov    %ebx,%eax
5f58447f:	5b                   	pop    %ebx
5f584480:	5e                   	pop    %esi
5f584481:	5f                   	pop    %edi
5f584482:	5d                   	pop    %ebp
5f584483:	c3                   	ret    
5f584484:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58448a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f584490 <_mousedev_create_deviceA>:
5f584490:	55                   	push   %ebp
5f584491:	b9 10 00 00 00       	mov    $0x10,%ecx
5f584496:	89 e5                	mov    %esp,%ebp
5f584498:	57                   	push   %edi
5f584499:	56                   	push   %esi
5f58449a:	53                   	push   %ebx
5f58449b:	83 ec 0c             	sub    $0xc,%esp
5f58449e:	be 40 ca 58 5f       	mov    $0x5f58ca40,%esi
5f5844a3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f5844a6:	8b 45 10             	mov    0x10(%ebp),%eax
5f5844a9:	fc                   	cld    
5f5844aa:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f5844ad:	89 df                	mov    %ebx,%edi
5f5844af:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5844b1:	74 1d                	je     5f5844d0 <_mousedev_create_deviceA+0x40>
5f5844b3:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5844b8:	be 40 91 58 5f       	mov    $0x5f589140,%esi
5f5844bd:	89 df                	mov    %ebx,%edi
5f5844bf:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5844c1:	0f 97 c2             	seta   %dl
5f5844c4:	0f 92 c0             	setb   %al
5f5844c7:	b9 54 01 04 80       	mov    $0x80040154,%ecx
5f5844cc:	38 c2                	cmp    %al,%dl
5f5844ce:	75 5a                	jne    5f58452a <_mousedev_create_deviceA+0x9a>
5f5844d0:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f5844d3:	85 c0                	test   %eax,%eax
5f5844d5:	74 39                	je     5f584510 <_mousedev_create_deviceA+0x80>
5f5844d7:	fc                   	cld    
5f5844d8:	be 90 bf 58 5f       	mov    $0x5f58bf90,%esi
5f5844dd:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5844e2:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5844e5:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5844e7:	74 27                	je     5f584510 <_mousedev_create_deviceA+0x80>
5f5844e9:	be f0 bf 58 5f       	mov    $0x5f58bff0,%esi
5f5844ee:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5844f3:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5844f6:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5844f8:	74 16                	je     5f584510 <_mousedev_create_deviceA+0x80>
5f5844fa:	be d0 bf 58 5f       	mov    $0x5f58bfd0,%esi
5f5844ff:	b9 10 00 00 00       	mov    $0x10,%ecx
5f584504:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f584507:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f584509:	75 29                	jne    5f584534 <_mousedev_create_deviceA+0xa4>
5f58450b:	90                   	nop    
5f58450c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f584510:	83 ec 0c             	sub    $0xc,%esp
5f584513:	8b 45 08             	mov    0x8(%ebp),%eax
5f584516:	ba 60 91 58 5f       	mov    $0x5f589160,%edx
5f58451b:	50                   	push   %eax
5f58451c:	89 d8                	mov    %ebx,%eax
5f58451e:	e8 8d fe ff ff       	call   5f5843b0 <_alloc_device_mouse>
5f584523:	8b 55 14             	mov    0x14(%ebp),%edx
5f584526:	31 c9                	xor    %ecx,%ecx
5f584528:	89 02                	mov    %eax,(%edx)
5f58452a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58452d:	89 c8                	mov    %ecx,%eax
5f58452f:	5b                   	pop    %ebx
5f584530:	5e                   	pop    %esi
5f584531:	5f                   	pop    %edi
5f584532:	5d                   	pop    %ebp
5f584533:	c3                   	ret    
5f584534:	b9 10 00 00 00       	mov    $0x10,%ecx
5f584539:	be b0 bf 58 5f       	mov    $0x5f58bfb0,%esi
5f58453e:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f584541:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f584543:	0f 97 c2             	seta   %dl
5f584546:	0f 92 c0             	setb   %al
5f584549:	b9 02 40 00 80       	mov    $0x80004002,%ecx
5f58454e:	38 c2                	cmp    %al,%dl
5f584550:	74 be                	je     5f584510 <_mousedev_create_deviceA+0x80>
5f584552:	eb d6                	jmp    5f58452a <_mousedev_create_deviceA+0x9a>
5f584554:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58455a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f584560 <_mousedev_create_deviceW>:
5f584560:	55                   	push   %ebp
5f584561:	b9 10 00 00 00       	mov    $0x10,%ecx
5f584566:	89 e5                	mov    %esp,%ebp
5f584568:	57                   	push   %edi
5f584569:	56                   	push   %esi
5f58456a:	53                   	push   %ebx
5f58456b:	83 ec 0c             	sub    $0xc,%esp
5f58456e:	be 40 ca 58 5f       	mov    $0x5f58ca40,%esi
5f584573:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f584576:	8b 45 10             	mov    0x10(%ebp),%eax
5f584579:	fc                   	cld    
5f58457a:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f58457d:	89 df                	mov    %ebx,%edi
5f58457f:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f584581:	74 1d                	je     5f5845a0 <_mousedev_create_deviceW+0x40>
5f584583:	b9 10 00 00 00       	mov    $0x10,%ecx
5f584588:	be 40 91 58 5f       	mov    $0x5f589140,%esi
5f58458d:	89 df                	mov    %ebx,%edi
5f58458f:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f584591:	0f 97 c2             	seta   %dl
5f584594:	0f 92 c0             	setb   %al
5f584597:	b9 54 01 04 80       	mov    $0x80040154,%ecx
5f58459c:	38 c2                	cmp    %al,%dl
5f58459e:	75 5a                	jne    5f5845fa <_mousedev_create_deviceW+0x9a>
5f5845a0:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
5f5845a3:	85 d2                	test   %edx,%edx
5f5845a5:	74 39                	je     5f5845e0 <_mousedev_create_deviceW+0x80>
5f5845a7:	fc                   	cld    
5f5845a8:	be 80 bf 58 5f       	mov    $0x5f58bf80,%esi
5f5845ad:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5845b2:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5845b5:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5845b7:	74 27                	je     5f5845e0 <_mousedev_create_deviceW+0x80>
5f5845b9:	be e0 bf 58 5f       	mov    $0x5f58bfe0,%esi
5f5845be:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5845c3:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5845c6:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5845c8:	74 16                	je     5f5845e0 <_mousedev_create_deviceW+0x80>
5f5845ca:	be c0 bf 58 5f       	mov    $0x5f58bfc0,%esi
5f5845cf:	b9 10 00 00 00       	mov    $0x10,%ecx
5f5845d4:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f5845d7:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f5845d9:	75 29                	jne    5f584604 <_mousedev_create_deviceW+0xa4>
5f5845db:	90                   	nop    
5f5845dc:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5845e0:	83 ec 0c             	sub    $0xc,%esp
5f5845e3:	8b 45 08             	mov    0x8(%ebp),%eax
5f5845e6:	ba c0 90 58 5f       	mov    $0x5f5890c0,%edx
5f5845eb:	50                   	push   %eax
5f5845ec:	89 d8                	mov    %ebx,%eax
5f5845ee:	e8 bd fd ff ff       	call   5f5843b0 <_alloc_device_mouse>
5f5845f3:	8b 55 14             	mov    0x14(%ebp),%edx
5f5845f6:	31 c9                	xor    %ecx,%ecx
5f5845f8:	89 02                	mov    %eax,(%edx)
5f5845fa:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5845fd:	89 c8                	mov    %ecx,%eax
5f5845ff:	5b                   	pop    %ebx
5f584600:	5e                   	pop    %esi
5f584601:	5f                   	pop    %edi
5f584602:	5d                   	pop    %ebp
5f584603:	c3                   	ret    
5f584604:	b9 10 00 00 00       	mov    $0x10,%ecx
5f584609:	be a0 bf 58 5f       	mov    $0x5f58bfa0,%esi
5f58460e:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
5f584611:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
5f584613:	0f 97 c2             	seta   %dl
5f584616:	0f 92 c0             	setb   %al
5f584619:	b9 02 40 00 80       	mov    $0x80004002,%ecx
5f58461e:	38 c2                	cmp    %al,%dl
5f584620:	74 be                	je     5f5845e0 <_mousedev_create_deviceW+0x80>
5f584622:	eb d6                	jmp    5f5845fa <_mousedev_create_deviceW+0x9a>
5f584624:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58462a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f584630 <_scan_mouse>:
5f584630:	55                   	push   %ebp
5f584631:	89 e5                	mov    %esp,%ebp
5f584633:	83 ec 14             	sub    $0x14,%esp
5f584636:	68 a0 90 58 5f       	push   $0x5f5890a0
5f58463b:	e8 40 dd ff ff       	call   5f582380 <_dinput_register_device>
5f584640:	c9                   	leave  
5f584641:	c3                   	ret    
5f584642:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f584649:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f584650 <_mousedev_register>:
5f584650:	55                   	push   %ebp
5f584651:	89 e5                	mov    %esp,%ebp
5f584653:	83 ec 14             	sub    $0x14,%esp
5f584656:	68 a0 90 58 5f       	push   $0x5f5890a0
5f58465b:	e8 20 dd ff ff       	call   5f582380 <_dinput_register_device>
5f584660:	c9                   	leave  
5f584661:	c3                   	ret    
5f584662:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f584669:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f584670 <_SysMouseAImpl_Release@4>:
5f584670:	55                   	push   %ebp
5f584671:	89 e5                	mov    %esp,%ebp
5f584673:	53                   	push   %ebx
5f584674:	83 ec 10             	sub    $0x10,%esp
5f584677:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f58467a:	8d 43 04             	lea    0x4(%ebx),%eax
5f58467d:	50                   	push   %eax
5f58467e:	e8 cd 20 00 00       	call   5f586750 <_InterlockedDecrement@4>
5f584683:	83 c4 0c             	add    $0xc,%esp
5f584686:	85 c0                	test   %eax,%eax
5f584688:	74 07                	je     5f584691 <_SysMouseAImpl_Release@4+0x21>
5f58468a:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f58468d:	c9                   	leave  
5f58468e:	c2 04 00             	ret    $0x4
5f584691:	50                   	push   %eax
5f584692:	8b 43 6c             	mov    0x6c(%ebx),%eax
5f584695:	50                   	push   %eax
5f584696:	6a 00                	push   $0x0
5f584698:	50                   	push   %eax
5f584699:	e8 72 20 00 00       	call   5f586710 <_GetProcessHeap@0>
5f58469e:	89 04 24             	mov    %eax,(%esp)
5f5846a1:	e8 7a 20 00 00       	call   5f586720 <_HeapFree@12>
5f5846a6:	f6 43 58 01          	testb  $0x1,0x58(%ebx)
5f5846aa:	59                   	pop    %ecx
5f5846ab:	75 4f                	jne    5f5846fc <_SysMouseAImpl_Release@4+0x8c>
5f5846ad:	8b 43 1c             	mov    0x1c(%ebx),%eax
5f5846b0:	3d e4 b1 58 5f       	cmp    $0x5f58b1e4,%eax
5f5846b5:	74 2a                	je     5f5846e1 <_SysMouseAImpl_Release@4+0x71>
5f5846b7:	52                   	push   %edx
5f5846b8:	8b 40 14             	mov    0x14(%eax),%eax
5f5846bb:	50                   	push   %eax
5f5846bc:	6a 00                	push   $0x0
5f5846be:	50                   	push   %eax
5f5846bf:	e8 4c 20 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5846c4:	89 04 24             	mov    %eax,(%esp)
5f5846c7:	e8 54 20 00 00       	call   5f586720 <_HeapFree@12>
5f5846cc:	8b 43 1c             	mov    0x1c(%ebx),%eax
5f5846cf:	50                   	push   %eax
5f5846d0:	6a 00                	push   $0x0
5f5846d2:	50                   	push   %eax
5f5846d3:	e8 38 20 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5846d8:	89 04 24             	mov    %eax,(%esp)
5f5846db:	e8 40 20 00 00       	call   5f586720 <_HeapFree@12>
5f5846e0:	58                   	pop    %eax
5f5846e1:	50                   	push   %eax
5f5846e2:	53                   	push   %ebx
5f5846e3:	6a 00                	push   $0x0
5f5846e5:	51                   	push   %ecx
5f5846e6:	e8 25 20 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5846eb:	89 04 24             	mov    %eax,(%esp)
5f5846ee:	e8 2d 20 00 00       	call   5f586720 <_HeapFree@12>
5f5846f3:	31 c0                	xor    %eax,%eax
5f5846f5:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f5846f8:	c9                   	leave  
5f5846f9:	c2 04 00             	ret    $0x4
5f5846fc:	83 ec 0c             	sub    $0xc,%esp
5f5846ff:	6a 01                	push   $0x1
5f584701:	e8 fa 1e 00 00       	call   5f586600 <_ShowCursor@4>
5f584706:	83 c4 0c             	add    $0xc,%esp
5f584709:	eb a2                	jmp    5f5846ad <_SysMouseAImpl_Release@4+0x3d>
5f58470b:	90                   	nop    
5f58470c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f584710 <_SysMouseAImpl_SetCooperativeLevel@12>:
5f584710:	55                   	push   %ebp
5f584711:	89 e5                	mov    %esp,%ebp
5f584713:	57                   	push   %edi
5f584714:	56                   	push   %esi
5f584715:	53                   	push   %ebx
5f584716:	83 ec 18             	sub    $0x18,%esp
5f584719:	8b 75 10             	mov    0x10(%ebp),%esi
5f58471c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f58471f:	56                   	push   %esi
5f584720:	8b 7d 08             	mov    0x8(%ebp),%edi
5f584723:	e8 a8 ca ff ff       	call   5f5811d0 <__dump_cooperativelevel_DI>
5f584728:	83 c4 10             	add    $0x10,%esp
5f58472b:	85 db                	test   %ebx,%ebx
5f58472d:	74 12                	je     5f584741 <_SysMouseAImpl_SetCooperativeLevel@12+0x31>
5f58472f:	89 5f 54             	mov    %ebx,0x54(%edi)
5f584732:	89 77 58             	mov    %esi,0x58(%edi)
5f584735:	31 c0                	xor    %eax,%eax
5f584737:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58473a:	5b                   	pop    %ebx
5f58473b:	5e                   	pop    %esi
5f58473c:	5f                   	pop    %edi
5f58473d:	5d                   	pop    %ebp
5f58473e:	c2 0c 00             	ret    $0xc
5f584741:	e8 ca 1e 00 00       	call   5f586610 <_GetDesktopWindow@0>
5f584746:	89 c3                	mov    %eax,%ebx
5f584748:	eb e5                	jmp    5f58472f <_SysMouseAImpl_SetCooperativeLevel@12+0x1f>
5f58474a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f584750 <_SysMouseAImpl_SetDataFormat@8>:
5f584750:	55                   	push   %ebp
5f584751:	89 e5                	mov    %esp,%ebp
5f584753:	57                   	push   %edi
5f584754:	56                   	push   %esi
5f584755:	53                   	push   %ebx
5f584756:	83 ec 18             	sub    $0x18,%esp
5f584759:	8b 75 0c             	mov    0xc(%ebp),%esi
5f58475c:	56                   	push   %esi
5f58475d:	e8 2e cb ff ff       	call   5f581290 <__dump_DIDATAFORMAT>
5f584762:	8b 45 08             	mov    0x8(%ebp),%eax
5f584765:	83 c4 0c             	add    $0xc,%esp
5f584768:	c6 40 3c 00          	movb   $0x0,0x3c(%eax)
5f58476c:	8b 55 0c             	mov    0xc(%ebp),%edx
5f58476f:	8b 1a                	mov    (%edx),%ebx
5f584771:	53                   	push   %ebx
5f584772:	6a 00                	push   $0x0
5f584774:	51                   	push   %ecx
5f584775:	e8 96 1f 00 00       	call   5f586710 <_GetProcessHeap@0>
5f58477a:	89 04 24             	mov    %eax,(%esp)
5f58477d:	e8 ae 1f 00 00       	call   5f586730 <_HeapAlloc@12>
5f584782:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f584785:	89 c7                	mov    %eax,%edi
5f584787:	fc                   	cld    
5f584788:	89 41 1c             	mov    %eax,0x1c(%ecx)
5f58478b:	8b 45 0c             	mov    0xc(%ebp),%eax
5f58478e:	89 c6                	mov    %eax,%esi
5f584790:	8b 10                	mov    (%eax),%edx
5f584792:	89 d1                	mov    %edx,%ecx
5f584794:	c1 e9 02             	shr    $0x2,%ecx
5f584797:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f584799:	f6 c2 02             	test   $0x2,%dl
5f58479c:	74 0c                	je     5f5847aa <_SysMouseAImpl_SetDataFormat@8+0x5a>
5f58479e:	66 8b 06             	mov    (%esi),%ax
5f5847a1:	83 c6 02             	add    $0x2,%esi
5f5847a4:	66 89 07             	mov    %ax,(%edi)
5f5847a7:	83 c7 02             	add    $0x2,%edi
5f5847aa:	83 e2 01             	and    $0x1,%edx
5f5847ad:	74 04                	je     5f5847b3 <_SysMouseAImpl_SetDataFormat@8+0x63>
5f5847af:	8a 06                	mov    (%esi),%al
5f5847b1:	88 07                	mov    %al,(%edi)
5f5847b3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f5847b6:	8b 55 08             	mov    0x8(%ebp),%edx
5f5847b9:	8b 41 04             	mov    0x4(%ecx),%eax
5f5847bc:	8b 5a 1c             	mov    0x1c(%edx),%ebx
5f5847bf:	8b 51 10             	mov    0x10(%ecx),%edx
5f5847c2:	0f af c2             	imul   %edx,%eax
5f5847c5:	50                   	push   %eax
5f5847c6:	6a 00                	push   $0x0
5f5847c8:	50                   	push   %eax
5f5847c9:	e8 42 1f 00 00       	call   5f586710 <_GetProcessHeap@0>
5f5847ce:	89 04 24             	mov    %eax,(%esp)
5f5847d1:	e8 5a 1f 00 00       	call   5f586730 <_HeapAlloc@12>
5f5847d6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f5847d9:	89 43 14             	mov    %eax,0x14(%ebx)
5f5847dc:	8b 45 08             	mov    0x8(%ebp),%eax
5f5847df:	8b 59 10             	mov    0x10(%ecx),%ebx
5f5847e2:	8b 71 14             	mov    0x14(%ecx),%esi
5f5847e5:	8b 50 1c             	mov    0x1c(%eax),%edx
5f5847e8:	8b 41 04             	mov    0x4(%ecx),%eax
5f5847eb:	0f af d8             	imul   %eax,%ebx
5f5847ee:	fc                   	cld    
5f5847ef:	89 d9                	mov    %ebx,%ecx
5f5847f1:	8b 7a 14             	mov    0x14(%edx),%edi
5f5847f4:	c1 e9 02             	shr    $0x2,%ecx
5f5847f7:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f5847f9:	f6 c3 02             	test   $0x2,%bl
5f5847fc:	74 0c                	je     5f58480a <_SysMouseAImpl_SetDataFormat@8+0xba>
5f5847fe:	66 8b 06             	mov    (%esi),%ax
5f584801:	83 c6 02             	add    $0x2,%esi
5f584804:	66 89 07             	mov    %ax,(%edi)
5f584807:	83 c7 02             	add    $0x2,%edi
5f58480a:	83 e3 01             	and    $0x1,%ebx
5f58480d:	74 04                	je     5f584813 <_SysMouseAImpl_SetDataFormat@8+0xc3>
5f58480f:	8a 06                	mov    (%esi),%al
5f584811:	88 07                	mov    %al,(%edi)
5f584813:	8b 45 08             	mov    0x8(%ebp),%eax
5f584816:	83 c0 24             	add    $0x24,%eax
5f584819:	50                   	push   %eax
5f58481a:	8b 45 0c             	mov    0xc(%ebp),%eax
5f58481d:	50                   	push   %eax
5f58481e:	68 e4 b1 58 5f       	push   $0x5f58b1e4
5f584823:	e8 08 cc ff ff       	call   5f581430 <_create_DataFormat>
5f584828:	8b 55 08             	mov    0x8(%ebp),%edx
5f58482b:	89 42 20             	mov    %eax,0x20(%edx)
5f58482e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f584831:	31 c0                	xor    %eax,%eax
5f584833:	5b                   	pop    %ebx
5f584834:	5e                   	pop    %esi
5f584835:	5f                   	pop    %edi
5f584836:	5d                   	pop    %ebp
5f584837:	c2 08 00             	ret    $0x8
5f58483a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

5f584840 <_SysMouseAImpl_Acquire@4>:
5f584840:	55                   	push   %ebp
5f584841:	b8 01 00 00 00       	mov    $0x1,%eax
5f584846:	89 e5                	mov    %esp,%ebp
5f584848:	53                   	push   %ebx
5f584849:	83 ec 24             	sub    $0x24,%esp
5f58484c:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f58484f:	8b 93 84 00 00 00    	mov    0x84(%ebx),%edx
5f584855:	85 d2                	test   %edx,%edx
5f584857:	74 07                	je     5f584860 <_SysMouseAImpl_Acquire@4+0x20>
5f584859:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f58485c:	c9                   	leave  
5f58485d:	c2 04 00             	ret    $0x4
5f584860:	83 ec 0c             	sub    $0xc,%esp
5f584863:	8d 45 e0             	lea    0xffffffe0(%ebp),%eax
5f584866:	89 1d 78 e1 58 5f    	mov    %ebx,0x5f58e178
5f58486c:	50                   	push   %eax
5f58486d:	e8 ae 1d 00 00       	call   5f586620 <_GetCursorPos@4>
5f584872:	83 c4 0c             	add    $0xc,%esp
5f584875:	80 7b 3c 00          	cmpb   $0x0,0x3c(%ebx)
5f584879:	0f 85 e1 00 00 00    	jne    5f584960 <_SysMouseAImpl_Acquire@4+0x120>
5f58487f:	c7 83 a4 00 00 00 00 	movl   $0x0,0xa4(%ebx)
5f584886:	00 00 00 
5f584889:	c7 83 a8 00 00 00 00 	movl   $0x0,0xa8(%ebx)
5f584890:	00 00 00 
5f584893:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
5f584896:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
5f584899:	89 53 4c             	mov    %edx,0x4c(%ebx)
5f58489c:	89 43 48             	mov    %eax,0x48(%ebx)
5f58489f:	83 ec 0c             	sub    $0xc,%esp
5f5848a2:	c7 83 ac 00 00 00 00 	movl   $0x0,0xac(%ebx)
5f5848a9:	00 00 00 
5f5848ac:	6a 01                	push   $0x1
5f5848ae:	e8 7d 1d 00 00       	call   5f586630 <_GetKeyState@4>
5f5848b3:	c1 e8 07             	shr    $0x7,%eax
5f5848b6:	83 e0 01             	and    $0x1,%eax
5f5848b9:	83 f8 01             	cmp    $0x1,%eax
5f5848bc:	19 c0                	sbb    %eax,%eax
5f5848be:	83 f0 ff             	xor    $0xffffffff,%eax
5f5848c1:	88 83 b0 00 00 00    	mov    %al,0xb0(%ebx)
5f5848c7:	6a 02                	push   $0x2
5f5848c9:	e8 62 1d 00 00       	call   5f586630 <_GetKeyState@4>
5f5848ce:	c1 e8 07             	shr    $0x7,%eax
5f5848d1:	83 e0 01             	and    $0x1,%eax
5f5848d4:	83 f8 01             	cmp    $0x1,%eax
5f5848d7:	19 c0                	sbb    %eax,%eax
5f5848d9:	83 f0 ff             	xor    $0xffffffff,%eax
5f5848dc:	88 83 b1 00 00 00    	mov    %al,0xb1(%ebx)
5f5848e2:	6a 04                	push   $0x4
5f5848e4:	e8 47 1d 00 00       	call   5f586630 <_GetKeyState@4>
5f5848e9:	c1 e8 07             	shr    $0x7,%eax
5f5848ec:	83 c4 0c             	add    $0xc,%esp
5f5848ef:	83 e0 01             	and    $0x1,%eax
5f5848f2:	83 f8 01             	cmp    $0x1,%eax
5f5848f5:	19 c0                	sbb    %eax,%eax
5f5848f7:	83 f0 ff             	xor    $0xffffffff,%eax
5f5848fa:	f6 43 58 01          	testb  $0x1,0x58(%ebx)
5f5848fe:	88 83 b2 00 00 00    	mov    %al,0xb2(%ebx)
5f584904:	0f 85 a7 00 00 00    	jne    5f5849b1 <_SysMouseAImpl_Acquire@4+0x171>
5f58490a:	50                   	push   %eax
5f58490b:	50                   	push   %eax
5f58490c:	8d 45 e8             	lea    0xffffffe8(%ebp),%eax
5f58490f:	50                   	push   %eax
5f584910:	8b 43 54             	mov    0x54(%ebx),%eax
5f584913:	50                   	push   %eax
5f584914:	e8 27 1d 00 00       	call   5f586640 <_GetWindowRect@8>
5f584919:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
5f58491c:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f58491f:	29 c8                	sub    %ecx,%eax
5f584921:	83 c4 08             	add    $0x8,%esp
5f584924:	89 c2                	mov    %eax,%edx
5f584926:	c1 ea 1f             	shr    $0x1f,%edx
5f584929:	8d 0c 10             	lea    (%eax,%edx,1),%ecx
5f58492c:	d1 f9                	sar    %ecx
5f58492e:	89 4b 64             	mov    %ecx,0x64(%ebx)
5f584931:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
5f584934:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
5f584937:	29 d0                	sub    %edx,%eax
5f584939:	89 c2                	mov    %eax,%edx
5f58493b:	c1 ea 1f             	shr    $0x1f,%edx
5f58493e:	01 d0                	add    %edx,%eax
5f584940:	d1 f8                	sar    %eax
5f584942:	89 43 68             	mov    %eax,0x68(%ebx)
5f584945:	80 7b 3c 00          	cmpb   $0x0,0x3c(%ebx)
5f584949:	74 32                	je     5f58497d <_SysMouseAImpl_Acquire@4+0x13d>
5f58494b:	c7 83 84 00 00 00 01 	movl   $0x1,0x84(%ebx)
5f584952:	00 00 00 
5f584955:	31 c0                	xor    %eax,%eax
5f584957:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f58495a:	c9                   	leave  
5f58495b:	c2 04 00             	ret    $0x4
5f58495e:	89 f6                	mov    %esi,%esi
5f584960:	8b 55 e0             	mov    0xffffffe0(%ebp),%edx
5f584963:	89 93 a4 00 00 00    	mov    %edx,0xa4(%ebx)
5f584969:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
5f58496c:	89 53 40             	mov    %edx,0x40(%ebx)
5f58496f:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)
5f584975:	89 43 44             	mov    %eax,0x44(%ebx)
5f584978:	e9 22 ff ff ff       	jmp    5f58489f <_SysMouseAImpl_Acquire@4+0x5f>
5f58497d:	89 43 60             	mov    %eax,0x60(%ebx)
5f584980:	8d 43 5c             	lea    0x5c(%ebx),%eax
5f584983:	89 4b 5c             	mov    %ecx,0x5c(%ebx)
5f584986:	6a 01                	push   $0x1
5f584988:	50                   	push   %eax
5f584989:	6a 00                	push   $0x0
5f58498b:	8b 43 54             	mov    0x54(%ebx),%eax
5f58498e:	50                   	push   %eax
5f58498f:	e8 bc 1c 00 00       	call   5f586650 <_MapWindowPoints@16>
5f584994:	50                   	push   %eax
5f584995:	50                   	push   %eax
5f584996:	8b 43 60             	mov    0x60(%ebx),%eax
5f584999:	50                   	push   %eax
5f58499a:	8b 4b 5c             	mov    0x5c(%ebx),%ecx
5f58499d:	51                   	push   %ecx
5f58499e:	e8 bd 1c 00 00       	call   5f586660 <_SetCursorPos@8>
5f5849a3:	c7 83 80 00 00 00 00 	movl   $0x0,0x80(%ebx)
5f5849aa:	00 00 00 
5f5849ad:	58                   	pop    %eax
5f5849ae:	5a                   	pop    %edx
5f5849af:	eb 9a                	jmp    5f58494b <_SysMouseAImpl_Acquire@4+0x10b>
5f5849b1:	83 ec 0c             	sub    $0xc,%esp
5f5849b4:	6a 00                	push   $0x0
5f5849b6:	e8 45 1c 00 00       	call   5f586600 <_ShowCursor@4>
5f5849bb:	83 c4 0c             	add    $0xc,%esp
5f5849be:	e9 47 ff ff ff       	jmp    5f58490a <_SysMouseAImpl_Acquire@4+0xca>
5f5849c3:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f5849c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5849d0 <_SysMouseAImpl_Unacquire@4>:
5f5849d0:	55                   	push   %ebp
5f5849d1:	89 e5                	mov    %esp,%ebp
5f5849d3:	53                   	push   %ebx
5f5849d4:	51                   	push   %ecx
5f5849d5:	b8 01 00 00 00       	mov    $0x1,%eax
5f5849da:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f5849dd:	8b 93 84 00 00 00    	mov    0x84(%ebx),%edx
5f5849e3:	85 d2                	test   %edx,%edx
5f5849e5:	74 22                	je     5f584a09 <_SysMouseAImpl_Unacquire@4+0x39>
5f5849e7:	f6 43 58 01          	testb  $0x1,0x58(%ebx)
5f5849eb:	75 38                	jne    5f584a25 <_SysMouseAImpl_Unacquire@4+0x55>
5f5849ed:	c7 05 78 e1 58 5f 00 	movl   $0x0,0x5f58e178
5f5849f4:	00 00 00 
5f5849f7:	c7 83 84 00 00 00 00 	movl   $0x0,0x84(%ebx)
5f5849fe:	00 00 00 
5f584a01:	80 7b 3c 00          	cmpb   $0x0,0x3c(%ebx)
5f584a05:	74 09                	je     5f584a10 <_SysMouseAImpl_Unacquire@4+0x40>
5f584a07:	31 c0                	xor    %eax,%eax
5f584a09:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f584a0c:	c9                   	leave  
5f584a0d:	c2 04 00             	ret    $0x4
5f584a10:	50                   	push   %eax
5f584a11:	50                   	push   %eax
5f584a12:	8b 43 4c             	mov    0x4c(%ebx),%eax
5f584a15:	50                   	push   %eax
5f584a16:	8b 43 48             	mov    0x48(%ebx),%eax
5f584a19:	50                   	push   %eax
5f584a1a:	e8 41 1c 00 00       	call   5f586660 <_SetCursorPos@8>
5f584a1f:	31 c0                	xor    %eax,%eax
5f584a21:	59                   	pop    %ecx
5f584a22:	5b                   	pop    %ebx
5f584a23:	eb e4                	jmp    5f584a09 <_SysMouseAImpl_Unacquire@4+0x39>
5f584a25:	83 ec 0c             	sub    $0xc,%esp
5f584a28:	6a 01                	push   $0x1
5f584a2a:	e8 d1 1b 00 00       	call   5f586600 <_ShowCursor@4>
5f584a2f:	c7 05 78 e1 58 5f 00 	movl   $0x0,0x5f58e178
5f584a36:	00 00 00 
5f584a39:	83 c4 0c             	add    $0xc,%esp
5f584a3c:	c7 83 84 00 00 00 00 	movl   $0x0,0x84(%ebx)
5f584a43:	00 00 00 
5f584a46:	80 7b 3c 00          	cmpb   $0x0,0x3c(%ebx)
5f584a4a:	75 bb                	jne    5f584a07 <_SysMouseAImpl_Unacquire@4+0x37>
5f584a4c:	eb c2                	jmp    5f584a10 <_SysMouseAImpl_Unacquire@4+0x40>
5f584a4e:	89 f6                	mov    %esi,%esi

5f584a50 <_getmousesvalue>:
5f584a50:	55                   	push   %ebp
5f584a51:	89 e5                	mov    %esp,%ebp
5f584a53:	56                   	push   %esi
5f584a54:	53                   	push   %ebx
5f584a55:	83 ec 1c             	sub    $0x1c,%esp
5f584a58:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f584a5b:	6a 01                	push   $0x1
5f584a5d:	e8 ce 1b 00 00       	call   5f586630 <_GetKeyState@4>
5f584a62:	c1 e8 07             	shr    $0x7,%eax
5f584a65:	83 e0 01             	and    $0x1,%eax
5f584a68:	83 f8 01             	cmp    $0x1,%eax
5f584a6b:	19 c0                	sbb    %eax,%eax
5f584a6d:	83 f0 ff             	xor    $0xffffffff,%eax
5f584a70:	88 83 b0 00 00 00    	mov    %al,0xb0(%ebx)
5f584a76:	6a 02                	push   $0x2
5f584a78:	e8 b3 1b 00 00       	call   5f586630 <_GetKeyState@4>
5f584a7d:	c1 e8 07             	shr    $0x7,%eax
5f584a80:	83 e0 01             	and    $0x1,%eax
5f584a83:	83 f8 01             	cmp    $0x1,%eax
5f584a86:	19 c0                	sbb    %eax,%eax
5f584a88:	83 f0 ff             	xor    $0xffffffff,%eax
5f584a8b:	88 83 b1 00 00 00    	mov    %al,0xb1(%ebx)
5f584a91:	6a 04                	push   $0x4
5f584a93:	e8 98 1b 00 00       	call   5f586630 <_GetKeyState@4>
5f584a98:	c1 e8 07             	shr    $0x7,%eax
5f584a9b:	83 e0 01             	and    $0x1,%eax
5f584a9e:	83 f8 01             	cmp    $0x1,%eax
5f584aa1:	19 c0                	sbb    %eax,%eax
5f584aa3:	83 f0 ff             	xor    $0xffffffff,%eax
5f584aa6:	88 83 b2 00 00 00    	mov    %al,0xb2(%ebx)
5f584aac:	6a 05                	push   $0x5
5f584aae:	e8 7d 1b 00 00       	call   5f586630 <_GetKeyState@4>
5f584ab3:	c1 e8 07             	shr    $0x7,%eax
5f584ab6:	83 e0 01             	and    $0x1,%eax
5f584ab9:	83 f8 01             	cmp    $0x1,%eax
5f584abc:	19 c0                	sbb    %eax,%eax
5f584abe:	83 f0 ff             	xor    $0xffffffff,%eax
5f584ac1:	88 83 b3 00 00 00    	mov    %al,0xb3(%ebx)
5f584ac7:	6a 06                	push   $0x6
5f584ac9:	e8 62 1b 00 00       	call   5f586630 <_GetKeyState@4>
5f584ace:	c1 e8 07             	shr    $0x7,%eax
5f584ad1:	83 c4 0c             	add    $0xc,%esp
5f584ad4:	83 e0 01             	and    $0x1,%eax
5f584ad7:	83 f8 01             	cmp    $0x1,%eax
5f584ada:	19 c0                	sbb    %eax,%eax
5f584adc:	83 f0 ff             	xor    $0xffffffff,%eax
5f584adf:	88 83 b4 00 00 00    	mov    %al,0xb4(%ebx)
5f584ae5:	83 3d 64 e1 58 5f 01 	cmpl   $0x1,0x5f58e164
5f584aec:	0f 84 be 00 00 00    	je     5f584bb0 <_getmousesvalue+0x160>
5f584af2:	a1 60 e1 58 5f       	mov    0x5f58e160,%eax
5f584af7:	83 f8 02             	cmp    $0x2,%eax
5f584afa:	74 75                	je     5f584b71 <_getmousesvalue+0x121>
5f584afc:	85 c0                	test   %eax,%eax
5f584afe:	75 50                	jne    5f584b50 <_getmousesvalue+0x100>
5f584b00:	83 ec 0c             	sub    $0xc,%esp
5f584b03:	8d 75 f0             	lea    0xfffffff0(%ebp),%esi
5f584b06:	56                   	push   %esi
5f584b07:	e8 14 1b 00 00       	call   5f586620 <_GetCursorPos@4>
5f584b0c:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f584b0f:	83 c4 0c             	add    $0xc,%esp
5f584b12:	39 43 40             	cmp    %eax,0x40(%ebx)
5f584b15:	74 7b                	je     5f584b92 <_getmousesvalue+0x142>
5f584b17:	8b 53 48             	mov    0x48(%ebx),%edx
5f584b1a:	89 43 40             	mov    %eax,0x40(%ebx)
5f584b1d:	29 d0                	sub    %edx,%eax
5f584b1f:	89 83 a4 00 00 00    	mov    %eax,0xa4(%ebx)
5f584b25:	8b 46 04             	mov    0x4(%esi),%eax
5f584b28:	39 43 44             	cmp    %eax,0x44(%ebx)
5f584b2b:	74 77                	je     5f584ba4 <_getmousesvalue+0x154>
5f584b2d:	8b 73 4c             	mov    0x4c(%ebx),%esi
5f584b30:	89 43 44             	mov    %eax,0x44(%ebx)
5f584b33:	29 f0                	sub    %esi,%eax
5f584b35:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)
5f584b3b:	a1 60 e1 58 5f       	mov    0x5f58e160,%eax
5f584b40:	40                   	inc    %eax
5f584b41:	a3 60 e1 58 5f       	mov    %eax,0x5f58e160
5f584b46:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f584b49:	5b                   	pop    %ebx
5f584b4a:	5e                   	pop    %esi
5f584b4b:	5d                   	pop    %ebp
5f584b4c:	c3                   	ret    
5f584b4d:	8d 76 00             	lea    0x0(%esi),%esi
5f584b50:	40                   	inc    %eax
5f584b51:	c7 83 a4 00 00 00 00 	movl   $0x0,0xa4(%ebx)
5f584b58:	00 00 00 
5f584b5b:	c7 83 a8 00 00 00 00 	movl   $0x0,0xa8(%ebx)
5f584b62:	00 00 00 
5f584b65:	a3 60 e1 58 5f       	mov    %eax,0x5f58e160
5f584b6a:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f584b6d:	5b                   	pop    %ebx
5f584b6e:	5e                   	pop    %esi
5f584b6f:	5d                   	pop    %ebp
5f584b70:	c3                   	ret    
5f584b71:	83 ec 0c             	sub    $0xc,%esp
5f584b74:	8d 75 f0             	lea    0xfffffff0(%ebp),%esi
5f584b77:	c7 05 60 e1 58 5f 00 	movl   $0x0,0x5f58e160
5f584b7e:	00 00 00 
5f584b81:	56                   	push   %esi
5f584b82:	e8 99 1a 00 00       	call   5f586620 <_GetCursorPos@4>
5f584b87:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f584b8a:	83 c4 0c             	add    $0xc,%esp
5f584b8d:	39 43 40             	cmp    %eax,0x40(%ebx)
5f584b90:	75 85                	jne    5f584b17 <_getmousesvalue+0xc7>
5f584b92:	c7 83 a4 00 00 00 00 	movl   $0x0,0xa4(%ebx)
5f584b99:	00 00 00 
5f584b9c:	8b 46 04             	mov    0x4(%esi),%eax
5f584b9f:	39 43 44             	cmp    %eax,0x44(%ebx)
5f584ba2:	75 89                	jne    5f584b2d <_getmousesvalue+0xdd>
5f584ba4:	c7 83 a8 00 00 00 00 	movl   $0x0,0xa8(%ebx)
5f584bab:	00 00 00 
5f584bae:	eb 8b                	jmp    5f584b3b <_getmousesvalue+0xeb>
5f584bb0:	c7 05 60 e1 58 5f 00 	movl   $0x0,0x5f58e160
5f584bb7:	00 00 00 
5f584bba:	e9 33 ff ff ff       	jmp    5f584af2 <_getmousesvalue+0xa2>
5f584bbf:	90                   	nop    

5f584bc0 <_SysMouseAImpl_Poll@4>:
5f584bc0:	55                   	push   %ebp
5f584bc1:	89 e5                	mov    %esp,%ebp
5f584bc3:	51                   	push   %ecx
5f584bc4:	51                   	push   %ecx
5f584bc5:	31 c0                	xor    %eax,%eax
5f584bc7:	8b 15 64 e1 58 5f    	mov    0x5f58e164,%edx
5f584bcd:	85 d2                	test   %edx,%edx
5f584bcf:	74 04                	je     5f584bd5 <_SysMouseAImpl_Poll@4+0x15>
5f584bd1:	c9                   	leave  
5f584bd2:	c2 04 00             	ret    $0x4
5f584bd5:	83 ec 0c             	sub    $0xc,%esp
5f584bd8:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f584bdb:	51                   	push   %ecx
5f584bdc:	e8 5f fc ff ff       	call   5f584840 <_SysMouseAImpl_Acquire@4>
5f584be1:	c7 05 64 e1 58 5f 01 	movl   $0x1,0x5f58e164
5f584be8:	00 00 00 
5f584beb:	83 c4 0c             	add    $0xc,%esp
5f584bee:	85 c0                	test   %eax,%eax
5f584bf0:	74 df                	je     5f584bd1 <_SysMouseAImpl_Poll@4+0x11>
5f584bf2:	b8 0c 00 07 80       	mov    $0x8007000c,%eax
5f584bf7:	c9                   	leave  
5f584bf8:	c2 04 00             	ret    $0x4
5f584bfb:	90                   	nop    
5f584bfc:	8d 74 26 00          	lea    0x0(%esi),%esi

5f584c00 <_SysMouseAImpl_GetDeviceState@12>:
5f584c00:	55                   	push   %ebp
5f584c01:	89 e5                	mov    %esp,%ebp
5f584c03:	56                   	push   %esi
5f584c04:	53                   	push   %ebx
5f584c05:	83 ec 1c             	sub    $0x1c,%esp
5f584c08:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f584c0b:	53                   	push   %ebx
5f584c0c:	e8 3f fe ff ff       	call   5f584a50 <_getmousesvalue>
5f584c11:	83 c4 0c             	add    $0xc,%esp
5f584c14:	8b 43 20             	mov    0x20(%ebx),%eax
5f584c17:	50                   	push   %eax
5f584c18:	8d 83 a4 00 00 00    	lea    0xa4(%ebx),%eax
5f584c1e:	50                   	push   %eax
5f584c1f:	8b 45 10             	mov    0x10(%ebp),%eax
5f584c22:	50                   	push   %eax
5f584c23:	e8 b8 c6 ff ff       	call   5f5812e0 <_fill_DataFormat>
5f584c28:	83 c4 10             	add    $0x10,%esp
5f584c2b:	83 3d 64 e1 58 5f 01 	cmpl   $0x1,0x5f58e164
5f584c32:	0f 84 bb 00 00 00    	je     5f584cf3 <_SysMouseAImpl_GetDeviceState@12+0xf3>
5f584c38:	80 7b 3c 00          	cmpb   $0x0,0x3c(%ebx)
5f584c3c:	74 14                	je     5f584c52 <_SysMouseAImpl_GetDeviceState@12+0x52>
5f584c3e:	83 bb 80 00 00 00 01 	cmpl   $0x1,0x80(%ebx)
5f584c45:	74 32                	je     5f584c79 <_SysMouseAImpl_GetDeviceState@12+0x79>
5f584c47:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f584c4a:	31 c0                	xor    %eax,%eax
5f584c4c:	5b                   	pop    %ebx
5f584c4d:	5e                   	pop    %esi
5f584c4e:	5d                   	pop    %ebp
5f584c4f:	c2 0c 00             	ret    $0xc
5f584c52:	c7 83 a4 00 00 00 00 	movl   $0x0,0xa4(%ebx)
5f584c59:	00 00 00 
5f584c5c:	c7 83 a8 00 00 00 00 	movl   $0x0,0xa8(%ebx)
5f584c63:	00 00 00 
5f584c66:	c7 83 ac 00 00 00 00 	movl   $0x0,0xac(%ebx)
5f584c6d:	00 00 00 
5f584c70:	83 bb 80 00 00 00 01 	cmpl   $0x1,0x80(%ebx)
5f584c77:	75 ce                	jne    5f584c47 <_SysMouseAImpl_GetDeviceState@12+0x47>
5f584c79:	8d 45 e8             	lea    0xffffffe8(%ebp),%eax
5f584c7c:	56                   	push   %esi
5f584c7d:	56                   	push   %esi
5f584c7e:	50                   	push   %eax
5f584c7f:	8b 4b 54             	mov    0x54(%ebx),%ecx
5f584c82:	51                   	push   %ecx
5f584c83:	e8 b8 19 00 00       	call   5f586640 <_GetWindowRect@8>
5f584c88:	8b 75 e8             	mov    0xffffffe8(%ebp),%esi
5f584c8b:	58                   	pop    %eax
5f584c8c:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f584c8f:	5a                   	pop    %edx
5f584c90:	29 f0                	sub    %esi,%eax
5f584c92:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
5f584c95:	89 c2                	mov    %eax,%edx
5f584c97:	c1 ea 1f             	shr    $0x1f,%edx
5f584c9a:	8d 34 10             	lea    (%eax,%edx,1),%esi
5f584c9d:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
5f584ca0:	d1 fe                	sar    %esi
5f584ca2:	29 c8                	sub    %ecx,%eax
5f584ca4:	89 c2                	mov    %eax,%edx
5f584ca6:	8b 4b 64             	mov    0x64(%ebx),%ecx
5f584ca9:	c1 ea 1f             	shr    $0x1f,%edx
5f584cac:	01 d0                	add    %edx,%eax
5f584cae:	d1 f8                	sar    %eax
5f584cb0:	39 f1                	cmp    %esi,%ecx
5f584cb2:	74 6c                	je     5f584d20 <_SysMouseAImpl_GetDeviceState@12+0x120>
5f584cb4:	89 f1                	mov    %esi,%ecx
5f584cb6:	89 73 64             	mov    %esi,0x64(%ebx)
5f584cb9:	89 c2                	mov    %eax,%edx
5f584cbb:	89 43 68             	mov    %eax,0x68(%ebx)
5f584cbe:	8d 43 5c             	lea    0x5c(%ebx),%eax
5f584cc1:	89 53 60             	mov    %edx,0x60(%ebx)
5f584cc4:	89 4b 5c             	mov    %ecx,0x5c(%ebx)
5f584cc7:	6a 01                	push   $0x1
5f584cc9:	50                   	push   %eax
5f584cca:	6a 00                	push   $0x0
5f584ccc:	8b 53 54             	mov    0x54(%ebx),%edx
5f584ccf:	52                   	push   %edx
5f584cd0:	e8 7b 19 00 00       	call   5f586650 <_MapWindowPoints@16>
5f584cd5:	a1 68 e1 58 5f       	mov    0x5f58e168,%eax
5f584cda:	85 c0                	test   %eax,%eax
5f584cdc:	74 24                	je     5f584d02 <_SysMouseAImpl_GetDeviceState@12+0x102>
5f584cde:	c7 83 80 00 00 00 00 	movl   $0x0,0x80(%ebx)
5f584ce5:	00 00 00 
5f584ce8:	31 c0                	xor    %eax,%eax
5f584cea:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f584ced:	5b                   	pop    %ebx
5f584cee:	5e                   	pop    %esi
5f584cef:	5d                   	pop    %ebp
5f584cf0:	c2 0c 00             	ret    $0xc
5f584cf3:	c7 05 64 e1 58 5f 00 	movl   $0x0,0x5f58e164
5f584cfa:	00 00 00 
5f584cfd:	e9 3c ff ff ff       	jmp    5f584c3e <_SysMouseAImpl_GetDeviceState@12+0x3e>
5f584d02:	50                   	push   %eax
5f584d03:	50                   	push   %eax
5f584d04:	8b 43 60             	mov    0x60(%ebx),%eax
5f584d07:	50                   	push   %eax
5f584d08:	8b 43 5c             	mov    0x5c(%ebx),%eax
5f584d0b:	50                   	push   %eax
5f584d0c:	e8 4f 19 00 00       	call   5f586660 <_SetCursorPos@8>
5f584d11:	a1 68 e1 58 5f       	mov    0x5f58e168,%eax
5f584d16:	40                   	inc    %eax
5f584d17:	a3 68 e1 58 5f       	mov    %eax,0x5f58e168
5f584d1c:	5e                   	pop    %esi
5f584d1d:	58                   	pop    %eax
5f584d1e:	eb be                	jmp    5f584cde <_SysMouseAImpl_GetDeviceState@12+0xde>
5f584d20:	8b 53 68             	mov    0x68(%ebx),%edx
5f584d23:	39 c2                	cmp    %eax,%edx
5f584d25:	75 8d                	jne    5f584cb4 <_SysMouseAImpl_GetDeviceState@12+0xb4>
5f584d27:	eb 95                	jmp    5f584cbe <_SysMouseAImpl_GetDeviceState@12+0xbe>
5f584d29:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f584d30 <_SysMouseAImpl_GetDeviceData@20>:
5f584d30:	55                   	push   %ebp
5f584d31:	89 e5                	mov    %esp,%ebp
5f584d33:	57                   	push   %edi
5f584d34:	56                   	push   %esi
5f584d35:	53                   	push   %ebx
5f584d36:	83 ec 0c             	sub    $0xc,%esp
5f584d39:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
5f584d40:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f584d43:	8b 75 10             	mov    0x10(%ebp),%esi
5f584d46:	83 7d 18 01          	cmpl   $0x1,0x18(%ebp)
5f584d4a:	0f 84 ab 00 00 00    	je     5f584dfb <_SysMouseAImpl_GetDeviceData@20+0xcb>
5f584d50:	83 ec 0c             	sub    $0xc,%esp
5f584d53:	6a 01                	push   $0x1
5f584d55:	e8 d6 18 00 00       	call   5f586630 <_GetKeyState@4>
5f584d5a:	c1 e8 07             	shr    $0x7,%eax
5f584d5d:	83 e0 01             	and    $0x1,%eax
b[1] = ((GetKeyState(VK_RBUTTON) & 0x80) ? 0xFF : 0x00);	
5f584d60:	6a 02                	push   $0x2
5f584d62:	83 f8 01             	cmp    $0x1,%eax
5f584d65:	19 c0                	sbb    %eax,%eax
5f584d67:	83 f0 ff             	xor    $0xffffffff,%eax
5f584d6a:	25 ff 00 00 00       	and    $0xff,%eax
5f584d6f:	a3 e8 e1 58 5f       	mov    %eax,0x5f58e1e8
5f584d74:	e8 b7 18 00 00       	call   5f586630 <_GetKeyState@4>
5f584d79:	c1 e8 07             	shr    $0x7,%eax
5f584d7c:	83 e0 01             	and    $0x1,%eax
b[2] = ((GetKeyState(VK_MBUTTON) & 0x80) ? 0xFF : 0x00);	
5f584d7f:	6a 04                	push   $0x4
5f584d81:	83 f8 01             	cmp    $0x1,%eax
5f584d84:	19 c0                	sbb    %eax,%eax
5f584d86:	83 f0 ff             	xor    $0xffffffff,%eax
5f584d89:	25 ff 00 00 00       	and    $0xff,%eax
5f584d8e:	a3 ec e1 58 5f       	mov    %eax,0x5f58e1ec
5f584d93:	e8 98 18 00 00       	call   5f586630 <_GetKeyState@4>
5f584d98:	c1 e8 07             	shr    $0x7,%eax
5f584d9b:	83 e0 01             	and    $0x1,%eax
b[3] = ((GetKeyState(VK_XBUTTON1) & 0x80) ? 0xFF : 0x00);	
5f584d9e:	6a 05                	push   $0x5
5f584da0:	83 f8 01             	cmp    $0x1,%eax
5f584da3:	19 c0                	sbb    %eax,%eax
5f584da5:	83 f0 ff             	xor    $0xffffffff,%eax
5f584da8:	25 ff 00 00 00       	and    $0xff,%eax
5f584dad:	a3 f0 e1 58 5f       	mov    %eax,0x5f58e1f0
5f584db2:	e8 79 18 00 00       	call   5f586630 <_GetKeyState@4>
5f584db7:	c1 e8 07             	shr    $0x7,%eax
5f584dba:	83 e0 01             	and    $0x1,%eax
b[4] = ((GetKeyState(VK_XBUTTON2) & 0x80) ? 0xFF : 0x00);	
5f584dbd:	6a 06                	push   $0x6
5f584dbf:	83 f8 01             	cmp    $0x1,%eax
5f584dc2:	19 c0                	sbb    %eax,%eax
5f584dc4:	83 f0 ff             	xor    $0xffffffff,%eax
5f584dc7:	25 ff 00 00 00       	and    $0xff,%eax
5f584dcc:	a3 f4 e1 58 5f       	mov    %eax,0x5f58e1f4
5f584dd1:	e8 5a 18 00 00       	call   5f586630 <_GetKeyState@4>
5f584dd6:	c1 e8 07             	shr    $0x7,%eax
5f584dd9:	83 e0 01             	and    $0x1,%eax
GetCursorPos( &point );   	
5f584ddc:	68 08 e2 58 5f       	push   $0x5f58e208
5f584de1:	83 f8 01             	cmp    $0x1,%eax
5f584de4:	19 c0                	sbb    %eax,%eax
5f584de6:	83 f0 ff             	xor    $0xffffffff,%eax
5f584de9:	25 ff 00 00 00       	and    $0xff,%eax
5f584dee:	a3 f8 e1 58 5f       	mov    %eax,0x5f58e1f8
5f584df3:	e8 28 18 00 00       	call   5f586620 <_GetCursorPos@4>
5f584df8:	83 c4 0c             	add    $0xc,%esp
}

#endif

    
  
	
	
    

  if (This->acquired == 0) {
5f584dfb:	8b 8b 84 00 00 00    	mov    0x84(%ebx),%ecx
	WARN(" application tries to get data from an unacquired device !\n");
	return DIERR_NOTACQUIRED;
5f584e01:	b8 0c 00 07 80       	mov    $0x8007000c,%eax
5f584e06:	85 c9                	test   %ecx,%ecx
5f584e08:	0f 84 d0 00 00 00    	je     5f584ede <_SysMouseAImpl_GetDeviceData@20+0x1ae>

	// windows does not get any data if 
	// we do not call manual to mouse Acquire
	// this is only need if some apps calling on getdevice data direcly
	// in windows GetdeviceData does always update first the data
	// then return it.
	}
	
    

   

#ifdef __REACTOS__	


  if (*entries == 0) return DIERR_INVALIDPARAM;
5f584e0e:	8b 55 14             	mov    0x14(%ebp),%edx
5f584e11:	b0 57                	mov    $0x57,%al
5f584e13:	8b 12                	mov    (%edx),%edx
5f584e15:	85 d2                	test   %edx,%edx
5f584e17:	0f 84 c1 00 00 00    	je     5f584ede <_SysMouseAImpl_GetDeviceData@20+0x1ae>

  if (dodsize < sizeof(DIDEVICEOBJECTDATA_DX3)) {
5f584e1d:	83 7d 0c 0f          	cmpl   $0xf,0xc(%ebp)
5f584e21:	0f 86 6e 02 00 00    	jbe    5f585095 <_SysMouseAImpl_GetDeviceData@20+0x365>
	    ERR("Wrong structure size !\n");	 
	    return DIERR_INVALIDPARAM;
	}
	if (This->data_queue==NULL) {
5f584e27:	8b 7b 6c             	mov    0x6c(%ebx),%edi
       WARN("No buffer have been set up !\n");	  
       return DIERR_NOTINITIALIZED;
5f584e2a:	b8 15 00 07 80       	mov    $0x80070015,%eax
5f584e2f:	85 ff                	test   %edi,%edi
5f584e31:	0f 84 a7 00 00 00    	je     5f584ede <_SysMouseAImpl_GetDeviceData@20+0x1ae>
	}   	      
    
/* this code are not need it but if we want 100% compatible
  with ms we should keep it. but the mouse will be choppy 
  in Unreal 2004 Demo

  if (GetTickCount()-time <50) {
	  *entries=0;
	  return DI_OK;
      }
  time = GetTickCount();
*/  
	if (GetTickCount()-time <50)
5f584e37:	e8 84 19 00 00       	call   5f5867c0 <_GetTickCount@0>
5f584e3c:	8b 1d a8 e1 58 5f    	mov    0x5f58e1a8,%ebx
5f584e42:	29 d8                	sub    %ebx,%eax
	   {
	    add=0;
5f584e44:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
5f584e4b:	83 f8 31             	cmp    $0x31,%eax
5f584e4e:	0f 87 d9 01 00 00    	ja     5f58502d <_SysMouseAImpl_GetDeviceData@20+0x2fd>
	   }
	else 
	{
	 add=1;
	 time = GetTickCount();
	}


  for (count=0;count<*entries;count++) {
5f584e54:	8b 45 14             	mov    0x14(%ebp),%eax
5f584e57:	31 ff                	xor    %edi,%edi
5f584e59:	8b 10                	mov    (%eax),%edx
5f584e5b:	39 d7                	cmp    %edx,%edi
5f584e5d:	73 62                	jae    5f584ec1 <_SysMouseAImpl_GetDeviceData@20+0x191>
5f584e5f:	31 db                	xor    %ebx,%ebx
	  
	 
	  if (save_point.x != point.x) {
5f584e61:	a1 08 e2 58 5f       	mov    0x5f58e208,%eax
5f584e66:	39 05 b8 e1 58 5f    	cmp    %eax,0x5f58e1b8
5f584e6c:	74 7a                	je     5f584ee8 <_SysMouseAImpl_GetDeviceData@20+0x1b8>
             dod[count_ent].dwOfs =   DIMOFS_X;         
5f584e6e:	c7 04 33 00 00 00 00 	movl   $0x0,(%ebx,%esi,1)

		     dod[count_ent].dwData =  point.x - save_point.x;		         		 
5f584e75:	a1 08 e2 58 5f       	mov    0x5f58e208,%eax
5f584e7a:	8b 0d b8 e1 58 5f    	mov    0x5f58e1b8,%ecx
5f584e80:	29 c8                	sub    %ecx,%eax
5f584e82:	89 44 33 04          	mov    %eax,0x4(%ebx,%esi,1)
             dod[count_ent].dwTimeStamp =  GetTickCount();
5f584e86:	e8 35 19 00 00       	call   5f5867c0 <_GetTickCount@0>
             dod[count_ent].dwSequence = last_event+=add;  
5f584e8b:	8b 15 98 e1 58 5f    	mov    0x5f58e198,%edx
5f584e91:	89 44 33 08          	mov    %eax,0x8(%ebx,%esi,1)
5f584e95:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f584e98:	01 d0                	add    %edx,%eax
5f584e9a:	89 44 33 0c          	mov    %eax,0xc(%ebx,%esi,1)
5f584e9e:	a3 98 e1 58 5f       	mov    %eax,0x5f58e198
		     count_ent++;
5f584ea3:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f584ea6:	83 c3 14             	add    $0x14,%ebx
5f584ea9:	40                   	inc    %eax
5f584eaa:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
             save_point.x = point.x;
5f584ead:	a1 08 e2 58 5f       	mov    0x5f58e208,%eax
5f584eb2:	a3 b8 e1 58 5f       	mov    %eax,0x5f58e1b8
5f584eb7:	8b 45 14             	mov    0x14(%ebp),%eax
5f584eba:	8b 10                	mov    (%eax),%edx
5f584ebc:	47                   	inc    %edi
5f584ebd:	39 d7                	cmp    %edx,%edi
5f584ebf:	72 a0                	jb     5f584e61 <_SysMouseAImpl_GetDeviceData@20+0x131>
		     }

	   else  if (save_point.y != point.y) {
              dod[count_ent].dwOfs =   DIMOFS_Y;		
		      dod[count_ent].dwData =  point.y - save_point.y;	

              dod[count_ent].dwTimeStamp =  GetTickCount();
              dod[count_ent].dwSequence =  last_event+=add;  
		      count_ent++;
		      save_point.y = point.y;				
	          }	      

	 else if (save_b[0] != b[0]) {		 
		dod[count_ent].dwOfs =   DIMOFS_BUTTON0;
			
        dod[count_ent].dwData =   b[0];
        dod[count_ent].dwTimeStamp =  GetTickCount();
        dod[count_ent].dwSequence =  last_event+=add;  
		count_ent++;
		save_b[0] = b[0];
	    }

	 else if (save_b[1] != b[1]) {		 
		dod[count_ent].dwOfs =   DIMOFS_BUTTON1;
			
        dod[count_ent].dwData =   b[1];
        dod[count_ent].dwTimeStamp =  GetTickCount();
        dod[count_ent].dwSequence =  last_event+=add;  
		count_ent++;
		save_b[1] = b[1];
	    }

 	 else if (save_b[2] != b[2]) {		 
		dod[count_ent].dwOfs =   DIMOFS_BUTTON2;
			
        dod[count_ent].dwData =   b[2];
        dod[count_ent].dwTimeStamp =  GetTickCount();
        dod[count_ent].dwSequence =  last_event+=add;  
		count_ent++;
		save_b[2] = b[2];
	    }

     else if (save_b[3] != b[3]) {		 
		dod[count_ent].dwOfs =   DIMOFS_BUTTON3;
			
        dod[count_ent].dwData =   b[3];
        dod[count_ent].dwTimeStamp =  GetTickCount();
        dod[count_ent].dwSequence =  last_event+=add;  
		count_ent++;
		save_b[3] = b[3];
	    }
	 

  }  // end for


SetCursorPos(point.x, point.y);
5f584ec1:	50                   	push   %eax
5f584ec2:	50                   	push   %eax
5f584ec3:	a1 0c e2 58 5f       	mov    0x5f58e20c,%eax
5f584ec8:	50                   	push   %eax
5f584ec9:	a1 08 e2 58 5f       	mov    0x5f58e208,%eax
5f584ece:	50                   	push   %eax
5f584ecf:	e8 8c 17 00 00       	call   5f586660 <_SetCursorPos@8>
*entries = count_ent;
5f584ed4:	8b 55 14             	mov    0x14(%ebp),%edx
5f584ed7:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f584eda:	89 02                	mov    %eax,(%edx)
#endif

#ifndef __REACTOS__
    EnterCriticalSection(&(This->crit));


	// FIXME mouse are bit choppy here. 

    len = ((This->queue_head < This->queue_tail) ? This->queue_len : 0)
	+ (This->queue_head - This->queue_tail);
    if (len > *entries) len = *entries;
    
    if (dod == NULL) {
	if (len)
	    TRACE("Application discarding %ld event(s).\n", len);
	
	*entries = len;
	nqtail = This->queue_tail + len;
	while (nqtail >= This->queue_len) nqtail -= This->queue_len;
    } else {
	if (dodsize < sizeof(DIDEVICEOBJECTDATA_DX3)) {
	    ERR("Wrong structure size !\n");

	    LeaveCriticalSection(&(This->crit));

	    return DIERR_INVALIDPARAM;
	}
	
	if (len)
	    TRACE("Application retrieving %ld event(s).\n", len);
	
	*entries = 0;
	nqtail = This->queue_tail;
	while (len) {
	    /* Copy the buffered data into the application queue */
	    memcpy((char *)dod + *entries * dodsize, This->data_queue + nqtail, dodsize);

	    /* Advance position */
	    nqtail++;
	    if (nqtail >= This->queue_len)
                nqtail -= This->queue_len;
	    (*entries)++;
	    len--;
	}
    }
    if (!(flags & DIGDD_PEEK))
	This->queue_tail = nqtail;

    LeaveCriticalSection(&(This->crit));

    /* Check if we need to do a mouse warping */
   

    if (This->need_warp == WARP_NEEDED) {
	dinput_window_check(This);
	TRACE("Warping mouse to %ld - %ld\n", This->mapped_center.x, This->mapped_center.y);
        if (mouse_set==0){
           SetCursorPos( This->mapped_center.x, This->mapped_center.y );
           mouse_set++;
           }
	
#ifdef MOUSE_HACK
	This->need_warp = WARP_DONE;
#else
	This->need_warp = WARP_STARTED;
#endif
    }
#endif    
    return DI_OK;
5f584edc:	31 c0                	xor    %eax,%eax
}
5f584ede:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f584ee1:	5b                   	pop    %ebx
5f584ee2:	5e                   	pop    %esi
5f584ee3:	5f                   	pop    %edi
5f584ee4:	5d                   	pop    %ebp
5f584ee5:	c2 14 00             	ret    $0x14
5f584ee8:	a1 0c e2 58 5f       	mov    0x5f58e20c,%eax
5f584eed:	39 05 bc e1 58 5f    	cmp    %eax,0x5f58e1bc
5f584ef3:	74 4e                	je     5f584f43 <_SysMouseAImpl_GetDeviceData@20+0x213>
5f584ef5:	c7 04 33 04 00 00 00 	movl   $0x4,(%ebx,%esi,1)
5f584efc:	8b 0d bc e1 58 5f    	mov    0x5f58e1bc,%ecx
5f584f02:	a1 0c e2 58 5f       	mov    0x5f58e20c,%eax
5f584f07:	29 c8                	sub    %ecx,%eax
5f584f09:	89 44 33 04          	mov    %eax,0x4(%ebx,%esi,1)
5f584f0d:	e8 ae 18 00 00       	call   5f5867c0 <_GetTickCount@0>
5f584f12:	8b 15 98 e1 58 5f    	mov    0x5f58e198,%edx
5f584f18:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f584f1b:	89 44 33 08          	mov    %eax,0x8(%ebx,%esi,1)
5f584f1f:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f584f22:	01 d0                	add    %edx,%eax
5f584f24:	41                   	inc    %ecx
5f584f25:	89 44 33 0c          	mov    %eax,0xc(%ebx,%esi,1)
5f584f29:	a3 98 e1 58 5f       	mov    %eax,0x5f58e198
5f584f2e:	83 c3 14             	add    $0x14,%ebx
5f584f31:	a1 0c e2 58 5f       	mov    0x5f58e20c,%eax
5f584f36:	89 4d f0             	mov    %ecx,0xfffffff0(%ebp)
5f584f39:	a3 bc e1 58 5f       	mov    %eax,0x5f58e1bc
5f584f3e:	e9 74 ff ff ff       	jmp    5f584eb7 <_SysMouseAImpl_GetDeviceData@20+0x187>
5f584f43:	a1 e8 e1 58 5f       	mov    0x5f58e1e8,%eax
5f584f48:	39 05 c8 e1 58 5f    	cmp    %eax,0x5f58e1c8
5f584f4e:	74 41                	je     5f584f91 <_SysMouseAImpl_GetDeviceData@20+0x261>
5f584f50:	c7 04 33 0c 00 00 00 	movl   $0xc,(%ebx,%esi,1)
5f584f57:	89 44 33 04          	mov    %eax,0x4(%ebx,%esi,1)
5f584f5b:	e8 60 18 00 00       	call   5f5867c0 <_GetTickCount@0>
5f584f60:	8b 15 98 e1 58 5f    	mov    0x5f58e198,%edx
5f584f66:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f584f69:	89 44 33 08          	mov    %eax,0x8(%ebx,%esi,1)
5f584f6d:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f584f70:	01 d0                	add    %edx,%eax
5f584f72:	41                   	inc    %ecx
5f584f73:	89 44 33 0c          	mov    %eax,0xc(%ebx,%esi,1)
5f584f77:	a3 98 e1 58 5f       	mov    %eax,0x5f58e198
5f584f7c:	83 c3 14             	add    $0x14,%ebx
5f584f7f:	a1 e8 e1 58 5f       	mov    0x5f58e1e8,%eax
5f584f84:	89 4d f0             	mov    %ecx,0xfffffff0(%ebp)
5f584f87:	a3 c8 e1 58 5f       	mov    %eax,0x5f58e1c8
5f584f8c:	e9 26 ff ff ff       	jmp    5f584eb7 <_SysMouseAImpl_GetDeviceData@20+0x187>
5f584f91:	a1 ec e1 58 5f       	mov    0x5f58e1ec,%eax
5f584f96:	39 05 cc e1 58 5f    	cmp    %eax,0x5f58e1cc
5f584f9c:	74 41                	je     5f584fdf <_SysMouseAImpl_GetDeviceData@20+0x2af>
5f584f9e:	c7 04 33 0d 00 00 00 	movl   $0xd,(%ebx,%esi,1)
5f584fa5:	89 44 33 04          	mov    %eax,0x4(%ebx,%esi,1)
5f584fa9:	e8 12 18 00 00       	call   5f5867c0 <_GetTickCount@0>
5f584fae:	8b 15 98 e1 58 5f    	mov    0x5f58e198,%edx
5f584fb4:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f584fb7:	89 44 33 08          	mov    %eax,0x8(%ebx,%esi,1)
5f584fbb:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f584fbe:	01 d0                	add    %edx,%eax
5f584fc0:	41                   	inc    %ecx
5f584fc1:	89 44 33 0c          	mov    %eax,0xc(%ebx,%esi,1)
5f584fc5:	a3 98 e1 58 5f       	mov    %eax,0x5f58e198
5f584fca:	83 c3 14             	add    $0x14,%ebx
5f584fcd:	a1 ec e1 58 5f       	mov    0x5f58e1ec,%eax
5f584fd2:	89 4d f0             	mov    %ecx,0xfffffff0(%ebp)
5f584fd5:	a3 cc e1 58 5f       	mov    %eax,0x5f58e1cc
5f584fda:	e9 d8 fe ff ff       	jmp    5f584eb7 <_SysMouseAImpl_GetDeviceData@20+0x187>
5f584fdf:	a1 f0 e1 58 5f       	mov    0x5f58e1f0,%eax
5f584fe4:	39 05 d0 e1 58 5f    	cmp    %eax,0x5f58e1d0
5f584fea:	74 57                	je     5f585043 <_SysMouseAImpl_GetDeviceData@20+0x313>
5f584fec:	c7 04 33 0e 00 00 00 	movl   $0xe,(%ebx,%esi,1)
5f584ff3:	89 44 33 04          	mov    %eax,0x4(%ebx,%esi,1)
5f584ff7:	e8 c4 17 00 00       	call   5f5867c0 <_GetTickCount@0>
5f584ffc:	8b 15 98 e1 58 5f    	mov    0x5f58e198,%edx
5f585002:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f585005:	89 44 33 08          	mov    %eax,0x8(%ebx,%esi,1)
5f585009:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f58500c:	01 d0                	add    %edx,%eax
5f58500e:	41                   	inc    %ecx
5f58500f:	89 44 33 0c          	mov    %eax,0xc(%ebx,%esi,1)
5f585013:	a3 98 e1 58 5f       	mov    %eax,0x5f58e198
5f585018:	83 c3 14             	add    $0x14,%ebx
5f58501b:	a1 f0 e1 58 5f       	mov    0x5f58e1f0,%eax
5f585020:	89 4d f0             	mov    %ecx,0xfffffff0(%ebp)
5f585023:	a3 d0 e1 58 5f       	mov    %eax,0x5f58e1d0
5f585028:	e9 8a fe ff ff       	jmp    5f584eb7 <_SysMouseAImpl_GetDeviceData@20+0x187>
5f58502d:	c7 45 ec 01 00 00 00 	movl   $0x1,0xffffffec(%ebp)
5f585034:	e8 87 17 00 00       	call   5f5867c0 <_GetTickCount@0>
5f585039:	a3 a8 e1 58 5f       	mov    %eax,0x5f58e1a8
5f58503e:	e9 11 fe ff ff       	jmp    5f584e54 <_SysMouseAImpl_GetDeviceData@20+0x124>
5f585043:	a1 f4 e1 58 5f       	mov    0x5f58e1f4,%eax
5f585048:	39 05 d4 e1 58 5f    	cmp    %eax,0x5f58e1d4
5f58504e:	0f 84 68 fe ff ff    	je     5f584ebc <_SysMouseAImpl_GetDeviceData@20+0x18c>
5f585054:	c7 04 33 0f 00 00 00 	movl   $0xf,(%ebx,%esi,1)
5f58505b:	89 44 33 04          	mov    %eax,0x4(%ebx,%esi,1)
5f58505f:	e8 5c 17 00 00       	call   5f5867c0 <_GetTickCount@0>
5f585064:	8b 15 98 e1 58 5f    	mov    0x5f58e198,%edx
5f58506a:	89 44 33 08          	mov    %eax,0x8(%ebx,%esi,1)
5f58506e:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f585071:	01 d0                	add    %edx,%eax
5f585073:	89 44 33 0c          	mov    %eax,0xc(%ebx,%esi,1)
5f585077:	a3 98 e1 58 5f       	mov    %eax,0x5f58e198
5f58507c:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f58507f:	83 c3 14             	add    $0x14,%ebx
5f585082:	40                   	inc    %eax
5f585083:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f585086:	a1 f4 e1 58 5f       	mov    0x5f58e1f4,%eax
5f58508b:	a3 d4 e1 58 5f       	mov    %eax,0x5f58e1d4
5f585090:	e9 22 fe ff ff       	jmp    5f584eb7 <_SysMouseAImpl_GetDeviceData@20+0x187>
5f585095:	68 81 b2 58 5f       	push   $0x5f58b281
5f58509a:	68 99 03 00 00       	push   $0x399
5f58509f:	68 9d b2 58 5f       	push   $0x5f58b29d
5f5850a4:	68 a5 b2 58 5f       	push   $0x5f58b2a5
5f5850a9:	e8 c2 24 00 00       	call   5f587570 <_DbgPrint>
5f5850ae:	c7 04 24 b1 b2 58 5f 	movl   $0x5f58b2b1,(%esp)
5f5850b5:	e8 b6 24 00 00       	call   5f587570 <_DbgPrint>
5f5850ba:	b8 57 00 07 80       	mov    $0x80070057,%eax
5f5850bf:	e9 1a fe ff ff       	jmp    5f584ede <_SysMouseAImpl_GetDeviceData@20+0x1ae>
5f5850c4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f5850ca:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f5850d0 <_SysMouseAImpl_SetProperty@12>:

/******************************************************************************
  *     SetProperty : change input device properties
  */
static HRESULT WINAPI SysMouseAImpl_SetProperty(LPDIRECTINPUTDEVICE8A iface,
					    REFGUID rguid,
					    LPCDIPROPHEADER ph)
{
5f5850d0:	55                   	push   %ebp
5f5850d1:	89 e5                	mov    %esp,%ebp
5f5850d3:	57                   	push   %edi
5f5850d4:	56                   	push   %esi
5f5850d5:	53                   	push   %ebx
5f5850d6:	83 ec 0c             	sub    $0xc,%esp
5f5850d9:	8b 7d 08             	mov    0x8(%ebp),%edi
5f5850dc:	8b 75 10             	mov    0x10(%ebp),%esi
    SysMouseImpl *This = (SysMouseImpl *)iface;
    
    TRACE("(this=%p,%s,%p)\n",This,debugstr_guid(rguid),ph);
    
    if (!HIWORD(rguid)) {
5f5850df:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f5850e2:	66 83 7d 0e 00       	cmpw   $0x0,0xe(%ebp)
5f5850e7:	75 3d                	jne    5f585126 <_SysMouseAImpl_SetProperty@12+0x56>
	switch ((DWORD)rguid) {
5f5850e9:	83 fb 01             	cmp    $0x1,%ebx
5f5850ec:	74 4f                	je     5f58513d <_SysMouseAImpl_SetProperty@12+0x6d>
5f5850ee:	83 fb 02             	cmp    $0x2,%ebx
5f5850f1:	74 3f                	je     5f585132 <_SysMouseAImpl_SetProperty@12+0x62>
	    case (DWORD) DIPROP_BUFFERSIZE: {
		LPCDIPROPDWORD	pd = (LPCDIPROPDWORD)ph;
		
		TRACE("buffersize = %ld\n",pd->dwData);
		
		This->data_queue = (LPDIDEVICEOBJECTDATA)HeapAlloc(GetProcessHeap(),0,
								   pd->dwData * sizeof(DIDEVICEOBJECTDATA));
		This->queue_head = 0;
		This->queue_tail = 0;
		This->queue_len  = pd->dwData;
		break;
	    }
	    case (DWORD) DIPROP_AXISMODE: {
		LPCDIPROPDWORD    pd = (LPCDIPROPDWORD)ph;
		This->absolute = !(pd->dwData);
        
		TRACE("Using %s coordinates mode now\n", This->absolute ? "absolute" : "relative");
		break;
	    }
	    default:
	      FIXME("Unknown type %ld (%s)\n",(DWORD)rguid,debugstr_guid(rguid));
5f5850f3:	68 c9 b2 58 5f       	push   $0x5f58b2c9
5f5850f8:	68 63 04 00 00       	push   $0x463
5f5850fd:	68 9d b2 58 5f       	push   $0x5f58b29d
5f585102:	68 a5 b2 58 5f       	push   $0x5f58b2a5
5f585107:	e8 64 24 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f58510c:	89 1c 24             	mov    %ebx,(%esp)
5f58510f:	e8 5c 10 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f585114:	83 c4 0c             	add    $0xc,%esp
5f585117:	50                   	push   %eax
5f585118:	53                   	push   %ebx
5f585119:	68 e3 b2 58 5f       	push   $0x5f58b2e3
5f58511e:	e8 4d 24 00 00       	call   5f587570 <_DbgPrint>
	      break;
5f585123:	83 c4 10             	add    $0x10,%esp
	}
    }
    
    return DI_OK;
}
5f585126:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f585129:	31 c0                	xor    %eax,%eax
5f58512b:	5b                   	pop    %ebx
5f58512c:	5e                   	pop    %esi
5f58512d:	5f                   	pop    %edi
5f58512e:	5d                   	pop    %ebp
5f58512f:	c2 0c 00             	ret    $0xc
5f585132:	8b 5e 10             	mov    0x10(%esi),%ebx
5f585135:	85 db                	test   %ebx,%ebx
5f585137:	0f 94 47 3c          	sete   0x3c(%edi)
5f58513b:	eb e9                	jmp    5f585126 <_SysMouseAImpl_SetProperty@12+0x56>
5f58513d:	50                   	push   %eax
5f58513e:	8b 46 10             	mov    0x10(%esi),%eax
5f585141:	8d 04 80             	lea    (%eax,%eax,4),%eax
5f585144:	c1 e0 02             	shl    $0x2,%eax
5f585147:	50                   	push   %eax
5f585148:	6a 00                	push   $0x0
5f58514a:	50                   	push   %eax
5f58514b:	e8 c0 15 00 00       	call   5f586710 <_GetProcessHeap@0>
5f585150:	89 04 24             	mov    %eax,(%esp)
5f585153:	e8 d8 15 00 00       	call   5f586730 <_HeapAlloc@12>
5f585158:	c7 47 70 00 00 00 00 	movl   $0x0,0x70(%edi)
5f58515f:	c7 47 74 00 00 00 00 	movl   $0x0,0x74(%edi)
5f585166:	89 47 6c             	mov    %eax,0x6c(%edi)
5f585169:	8b 46 10             	mov    0x10(%esi),%eax
5f58516c:	89 47 78             	mov    %eax,0x78(%edi)
5f58516f:	5e                   	pop    %esi
5f585170:	eb b4                	jmp    5f585126 <_SysMouseAImpl_SetProperty@12+0x56>
5f585172:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f585179:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f585180 <_SysMouseAImpl_GetProperty@12>:

/******************************************************************************
  *     GetProperty : get input device properties
  */
static HRESULT WINAPI SysMouseAImpl_GetProperty(LPDIRECTINPUTDEVICE8A iface,
						REFGUID rguid,
						LPDIPROPHEADER pdiph)
{
5f585180:	55                   	push   %ebp
5f585181:	89 e5                	mov    %esp,%ebp
5f585183:	56                   	push   %esi
5f585184:	53                   	push   %ebx
    SysMouseImpl *This = (SysMouseImpl *)iface;
    
    TRACE("(this=%p,%s,%p)\n",
	  iface, debugstr_guid(rguid), pdiph);
    
    if (TRACE_ON(dinput))
	_dump_DIPROPHEADER(pdiph);
5f585185:	83 ec 0c             	sub    $0xc,%esp
5f585188:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f58518b:	8b 75 10             	mov    0x10(%ebp),%esi
5f58518e:	56                   	push   %esi
5f58518f:	e8 7c c0 ff ff       	call   5f581210 <__dump_DIPROPHEADER>
    
    if (!HIWORD(rguid)) {
5f585194:	89 d8                	mov    %ebx,%eax
5f585196:	83 c4 10             	add    $0x10,%esp
5f585199:	c1 e8 10             	shr    $0x10,%eax
5f58519c:	66 85 c0             	test   %ax,%ax
5f58519f:	75 3f                	jne    5f5851e0 <_SysMouseAImpl_GetProperty@12+0x60>
	switch ((DWORD)rguid) {
5f5851a1:	83 fb 03             	cmp    $0x3,%ebx
5f5851a4:	74 7c                	je     5f585222 <_SysMouseAImpl_GetProperty@12+0xa2>
5f5851a6:	77 48                	ja     5f5851f0 <_SysMouseAImpl_GetProperty@12+0x70>
5f5851a8:	83 fb 01             	cmp    $0x1,%ebx
5f5851ab:	74 7e                	je     5f58522b <_SysMouseAImpl_GetProperty@12+0xab>
	    case (DWORD) DIPROP_BUFFERSIZE: {
		LPDIPROPDWORD	pd = (LPDIPROPDWORD)pdiph;
		
		TRACE(" return buffersize = %d\n",This->queue_len);
		pd->dwData = This->queue_len;
		break;
	    }
	      
	    case (DWORD) DIPROP_GRANULARITY: {
		LPDIPROPDWORD pr = (LPDIPROPDWORD) pdiph;
		
		/* We'll just assume that the app asks about the Z axis */
		pr->dwData = WHEEL_DELTA;
		
		break;
	    }
	      
	    case (DWORD) DIPROP_RANGE: {
		LPDIPROPRANGE pr = (LPDIPROPRANGE) pdiph;
		
		if ((pdiph->dwHow == DIPH_BYID) &&
		    ((pdiph->dwObj == (DIDFT_MAKEINSTANCE(WINE_MOUSE_X_AXIS_INSTANCE) | DIDFT_RELAXIS)) ||
		     (pdiph->dwObj == (DIDFT_MAKEINSTANCE(WINE_MOUSE_Y_AXIS_INSTANCE) | DIDFT_RELAXIS)))) {
		    /* Querying the range of either the X or the Y axis.  As I do
		       not know the range, do as if the range were
		       unrestricted...*/
		    pr->lMin = DIPROPRANGE_NOMIN;
		    pr->lMax = DIPROPRANGE_NOMAX;
		}
		
		break;
	    }
	      
	    default:
	      FIXME("Unknown type %ld (%s)\n",(DWORD)rguid,debugstr_guid(rguid));
5f5851ad:	68 fa b2 58 5f       	push   $0x5f58b2fa
5f5851b2:	68 9e 04 00 00       	push   $0x49e
5f5851b7:	68 9d b2 58 5f       	push   $0x5f58b29d
5f5851bc:	68 a5 b2 58 5f       	push   $0x5f58b2a5
5f5851c1:	e8 aa 23 00 00       	call   5f587570 <_DbgPrint>
extern const char *wine_dbg_sprintf( const char *format, ... );

inline static const char *debugstr_an( const char * s, int n ) { return wine_dbgstr_an( s, n ); }
inline static const char *debugstr_wn( const wchar_t *s, int n ) { return wine_dbgstr_wn( s, n ); }
inline static const char *debugstr_guid( const struct _GUID *id ) { return wine_dbgstr_guid(id); }
5f5851c6:	89 1c 24             	mov    %ebx,(%esp)
5f5851c9:	e8 a2 0f 00 00       	call   5f586170 <_wine_dbgstr_guid>
5f5851ce:	83 c4 0c             	add    $0xc,%esp
5f5851d1:	50                   	push   %eax
5f5851d2:	53                   	push   %ebx
5f5851d3:	68 e3 b2 58 5f       	push   $0x5f58b2e3
5f5851d8:	e8 93 23 00 00       	call   5f587570 <_DbgPrint>
	      break;
5f5851dd:	83 c4 10             	add    $0x10,%esp
	  }
      }
    
    return DI_OK;
}
5f5851e0:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5851e3:	31 c0                	xor    %eax,%eax
5f5851e5:	5b                   	pop    %ebx
5f5851e6:	5e                   	pop    %esi
5f5851e7:	5d                   	pop    %ebp
5f5851e8:	c2 0c 00             	ret    $0xc
5f5851eb:	90                   	nop    
5f5851ec:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5851f0:	83 fb 04             	cmp    $0x4,%ebx
5f5851f3:	75 b8                	jne    5f5851ad <_SysMouseAImpl_GetProperty@12+0x2d>
5f5851f5:	83 7e 0c 02          	cmpl   $0x2,0xc(%esi)
5f5851f9:	75 e5                	jne    5f5851e0 <_SysMouseAImpl_GetProperty@12+0x60>
5f5851fb:	8b 46 08             	mov    0x8(%esi),%eax
5f5851fe:	83 f8 01             	cmp    $0x1,%eax
5f585201:	0f 94 c2             	sete   %dl
5f585204:	3d 01 01 00 00       	cmp    $0x101,%eax
5f585209:	0f 94 c0             	sete   %al
5f58520c:	09 d0                	or     %edx,%eax
5f58520e:	a8 01                	test   $0x1,%al
5f585210:	74 ce                	je     5f5851e0 <_SysMouseAImpl_GetProperty@12+0x60>
5f585212:	c7 46 10 00 00 00 80 	movl   $0x80000000,0x10(%esi)
5f585219:	c7 46 14 ff ff ff 7f 	movl   $0x7fffffff,0x14(%esi)
5f585220:	eb be                	jmp    5f5851e0 <_SysMouseAImpl_GetProperty@12+0x60>
5f585222:	c7 46 10 78 00 00 00 	movl   $0x78,0x10(%esi)
5f585229:	eb b5                	jmp    5f5851e0 <_SysMouseAImpl_GetProperty@12+0x60>
5f58522b:	8b 45 08             	mov    0x8(%ebp),%eax
5f58522e:	8b 40 78             	mov    0x78(%eax),%eax
5f585231:	89 46 10             	mov    %eax,0x10(%esi)
5f585234:	eb aa                	jmp    5f5851e0 <_SysMouseAImpl_GetProperty@12+0x60>
5f585236:	8d 76 00             	lea    0x0(%esi),%esi
5f585239:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f585240 <_SysMouseAImpl_SetEventNotification@8>:



/******************************************************************************
  *     SetEventNotification : specifies event to be sent on state change
  */
static HRESULT WINAPI SysMouseAImpl_SetEventNotification(LPDIRECTINPUTDEVICE8A iface,
							 HANDLE hnd) {
5f585240:	55                   	push   %ebp
5f585241:	89 e5                	mov    %esp,%ebp
    SysMouseImpl *This = (SysMouseImpl *)iface;
    
    TRACE("(this=%p,0x%08lx)\n",This,(DWORD)hnd);
    
    This->hEvent = hnd;
5f585243:	8b 45 08             	mov    0x8(%ebp),%eax
5f585246:	8b 55 0c             	mov    0xc(%ebp),%edx
5f585249:	89 90 88 00 00 00    	mov    %edx,0x88(%eax)
    
    return DI_OK;
}
5f58524f:	31 c0                	xor    %eax,%eax
5f585251:	5d                   	pop    %ebp
5f585252:	c2 08 00             	ret    $0x8
5f585255:	8d 74 26 00          	lea    0x0(%esi),%esi
5f585259:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f585260 <_SysMouseAImpl_GetCapabilities@8>:

/******************************************************************************
  *     GetCapabilities : get the device capablitites
  */
static HRESULT WINAPI SysMouseAImpl_GetCapabilities(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIDEVCAPS lpDIDevCaps)
{
5f585260:	55                   	push   %ebp
    SysMouseImpl *This = (SysMouseImpl *)iface;
    DIDEVCAPS devcaps;

    TRACE("(this=%p,%p)\n",This,lpDIDevCaps);

    if ((lpDIDevCaps->dwSize != sizeof(DIDEVCAPS)) && (lpDIDevCaps->dwSize != sizeof(DIDEVCAPS_DX3))) {
        WARN("invalid parameter\n");
        return DIERR_INVALIDPARAM;
5f585261:	b9 57 00 07 80       	mov    $0x80070057,%ecx
5f585266:	89 e5                	mov    %esp,%ebp
5f585268:	57                   	push   %edi
5f585269:	56                   	push   %esi
5f58526a:	53                   	push   %ebx
5f58526b:	83 ec 3c             	sub    $0x3c,%esp
5f58526e:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f585271:	8b 1f                	mov    (%edi),%ebx
5f585273:	83 fb 2c             	cmp    $0x2c,%ebx
5f585276:	0f 95 c2             	setne  %dl
5f585279:	83 fb 18             	cmp    $0x18,%ebx
5f58527c:	0f 95 c0             	setne  %al
5f58527f:	25 ff 00 00 00       	and    $0xff,%eax
5f585284:	85 c2                	test   %eax,%edx
5f585286:	75 7b                	jne    5f585303 <_SysMouseAImpl_GetCapabilities@8+0xa3>
    }

    devcaps.dwSize = lpDIDevCaps->dwSize;
    devcaps.dwFlags = DIDC_ATTACHED;
    if (This->dinput->version >= 8)
5f585288:	8b 45 08             	mov    0x8(%ebp),%eax
	devcaps.dwDevType = DI8DEVTYPE_MOUSE | (DI8DEVTYPEMOUSE_TRADITIONAL << 8);
    else
	devcaps.dwDevType = DIDEVTYPE_MOUSE | (DIDEVTYPEMOUSE_TRADITIONAL << 8);
    devcaps.dwAxes = 3;
    devcaps.dwButtons = 3;
    devcaps.dwPOVs = 0;
    devcaps.dwFFSamplePeriod = 0;
    devcaps.dwFFMinTimeResolution = 0;
    devcaps.dwFirmwareRevision = 100;
    devcaps.dwHardwareRevision = 100;
    devcaps.dwFFDriverVersion = 0;

    memcpy(lpDIDevCaps, &devcaps, lpDIDevCaps->dwSize);
5f58528b:	89 d9                	mov    %ebx,%ecx
5f58528d:	fc                   	cld    
5f58528e:	8b 40 18             	mov    0x18(%eax),%eax
5f585291:	89 5d b8             	mov    %ebx,0xffffffb8(%ebp)
5f585294:	c7 45 bc 01 00 00 00 	movl   $0x1,0xffffffbc(%ebp)
5f58529b:	c7 45 c4 03 00 00 00 	movl   $0x3,0xffffffc4(%ebp)
5f5852a2:	83 78 0c 07          	cmpl   $0x7,0xc(%eax)
5f5852a6:	0f 9f c0             	setg   %al
5f5852a9:	25 ff 00 00 00       	and    $0xff,%eax
5f5852ae:	c7 45 c8 03 00 00 00 	movl   $0x3,0xffffffc8(%ebp)
5f5852b5:	48                   	dec    %eax
5f5852b6:	c7 45 cc 00 00 00 00 	movl   $0x0,0xffffffcc(%ebp)
5f5852bd:	83 e0 f0             	and    $0xfffffff0,%eax
5f5852c0:	c7 45 d0 00 00 00 00 	movl   $0x0,0xffffffd0(%ebp)
5f5852c7:	05 12 02 00 00       	add    $0x212,%eax
5f5852cc:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
5f5852d3:	c1 e9 02             	shr    $0x2,%ecx
5f5852d6:	89 45 c0             	mov    %eax,0xffffffc0(%ebp)
5f5852d9:	c7 45 d8 64 00 00 00 	movl   $0x64,0xffffffd8(%ebp)
5f5852e0:	c7 45 dc 64 00 00 00 	movl   $0x64,0xffffffdc(%ebp)
5f5852e7:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
5f5852ee:	8d 75 b8             	lea    0xffffffb8(%ebp),%esi
5f5852f1:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
5f5852f3:	f6 c3 02             	test   $0x2,%bl
5f5852f6:	75 18                	jne    5f585310 <_SysMouseAImpl_GetCapabilities@8+0xb0>
5f5852f8:	83 e3 01             	and    $0x1,%ebx
5f5852fb:	74 04                	je     5f585301 <_SysMouseAImpl_GetCapabilities@8+0xa1>
5f5852fd:	8a 06                	mov    (%esi),%al
5f5852ff:	88 07                	mov    %al,(%edi)
    
    return DI_OK;
5f585301:	31 c9                	xor    %ecx,%ecx
}
5f585303:	83 c4 3c             	add    $0x3c,%esp
5f585306:	89 c8                	mov    %ecx,%eax
5f585308:	5b                   	pop    %ebx
5f585309:	5e                   	pop    %esi
5f58530a:	5f                   	pop    %edi
5f58530b:	5d                   	pop    %ebp
5f58530c:	c2 08 00             	ret    $0x8
5f58530f:	90                   	nop    
5f585310:	66 8b 06             	mov    (%esi),%ax
5f585313:	83 c6 02             	add    $0x2,%esi
5f585316:	66 89 07             	mov    %ax,(%edi)
5f585319:	83 c7 02             	add    $0x2,%edi
5f58531c:	eb da                	jmp    5f5852f8 <_SysMouseAImpl_GetCapabilities@8+0x98>
5f58531e:	89 f6                	mov    %esi,%esi

5f585320 <_SysMouseAImpl_EnumObjects@16>:


/******************************************************************************
  *     EnumObjects : enumerate the different buttons and axis...
  */
static HRESULT WINAPI SysMouseAImpl_EnumObjects(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIENUMDEVICEOBJECTSCALLBACKA lpCallback,
	LPVOID lpvRef,
	DWORD dwFlags)
{
5f585320:	55                   	push   %ebp
5f585321:	89 e5                	mov    %esp,%ebp
5f585323:	57                   	push   %edi
5f585324:	56                   	push   %esi
5f585325:	53                   	push   %ebx
5f585326:	81 ec 58 01 00 00    	sub    $0x158,%esp
    SysMouseImpl *This = (SysMouseImpl *)iface;
    DIDEVICEOBJECTINSTANCEA ddoi;
    
    TRACE("(this=%p,%p,%p,%08lx)\n", This, lpCallback, lpvRef, dwFlags);
    if (TRACE_ON(dinput)) {
	TRACE("  - flags = ");
	_dump_EnumObjects_flags(dwFlags);
	TRACE("\n");
    }
    
    /* Only the fields till dwFFMaxForce are relevant */
    memset(&ddoi, 0, sizeof(ddoi));
5f58532c:	8d b5 a8 fe ff ff    	lea    0xfffffea8(%ebp),%esi
5f585332:	8b 5d 14             	mov    0x14(%ebp),%ebx
5f585335:	8b 7d 08             	mov    0x8(%ebp),%edi
5f585338:	53                   	push   %ebx
5f585339:	e8 a2 be ff ff       	call   5f5811e0 <__dump_EnumObjects_flags>
5f58533e:	83 c4 0c             	add    $0xc,%esp
5f585341:	68 3c 01 00 00       	push   $0x13c
5f585346:	6a 00                	push   $0x0
5f585348:	56                   	push   %esi
5f585349:	e8 02 22 00 00       	call   5f587550 <_memset>
    ddoi.dwSize = FIELD_OFFSET(DIDEVICEOBJECTINSTANCEA, dwFFMaxForce);
    
    /* In a mouse, we have : two relative axis and three buttons */
    if ((dwFlags == DIDFT_ALL) ||
5f58534e:	83 c4 10             	add    $0x10,%esp
5f585351:	c7 85 a8 fe ff ff 24 	movl   $0x124,0xfffffea8(%ebp)
5f585358:	01 00 00 
5f58535b:	85 db                	test   %ebx,%ebx
5f58535d:	74 09                	je     5f585368 <_SysMouseAImpl_EnumObjects@16+0x48>
5f58535f:	f6 c3 03             	test   $0x3,%bl
5f585362:	0f 84 68 01 00 00    	je     5f5854d0 <_SysMouseAImpl_EnumObjects@16+0x1b0>
	(dwFlags & DIDFT_AXIS)) {
	/* X axis */
	ddoi.guidType = GUID_XAxis;
5f585368:	a1 50 c9 58 5f       	mov    0x5f58c950,%eax
	ddoi.dwOfs = This->offset_array[WINE_MOUSE_X_POSITION];
	ddoi.dwType = DIDFT_MAKEINSTANCE(WINE_MOUSE_X_AXIS_INSTANCE) | DIDFT_RELAXIS;
	strcpy(ddoi.tszName, "X-Axis");
	_dump_OBJECTINSTANCEA(&ddoi);
5f58536d:	83 ec 0c             	sub    $0xc,%esp
5f585370:	89 85 ac fe ff ff    	mov    %eax,0xfffffeac(%ebp)
5f585376:	a1 54 c9 58 5f       	mov    0x5f58c954,%eax
5f58537b:	89 85 b0 fe ff ff    	mov    %eax,0xfffffeb0(%ebp)
5f585381:	a1 58 c9 58 5f       	mov    0x5f58c958,%eax
5f585386:	89 85 b4 fe ff ff    	mov    %eax,0xfffffeb4(%ebp)
5f58538c:	a1 5c c9 58 5f       	mov    0x5f58c95c,%eax
5f585391:	89 85 b8 fe ff ff    	mov    %eax,0xfffffeb8(%ebp)
5f585397:	c7 85 c0 fe ff ff 01 	movl   $0x1,0xfffffec0(%ebp)
5f58539e:	00 00 00 
5f5853a1:	8b 47 24             	mov    0x24(%edi),%eax
5f5853a4:	56                   	push   %esi
5f5853a5:	89 85 bc fe ff ff    	mov    %eax,0xfffffebc(%ebp)
5f5853ab:	c7 85 c8 fe ff ff 58 	movl   $0x78412d58,0xfffffec8(%ebp)
5f5853b2:	2d 41 78 
5f5853b5:	66 c7 85 cc fe ff ff 	movw   $0x7369,0xfffffecc(%ebp)
5f5853bc:	69 73 
5f5853be:	c6 85 ce fe ff ff 00 	movb   $0x0,0xfffffece(%ebp)
5f5853c5:	e8 56 be ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
	if (lpCallback(&ddoi, lpvRef) != DIENUM_CONTINUE) return DI_OK;
5f5853ca:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f5853cd:	58                   	pop    %eax
5f5853ce:	5a                   	pop    %edx
5f5853cf:	51                   	push   %ecx
5f5853d0:	56                   	push   %esi
5f5853d1:	ff 55 0c             	call   *0xc(%ebp)
5f5853d4:	59                   	pop    %ecx
5f5853d5:	48                   	dec    %eax
5f5853d6:	5a                   	pop    %edx
5f5853d7:	74 0c                	je     5f5853e5 <_SysMouseAImpl_EnumObjects@16+0xc5>
	
	/* Y axis */
	ddoi.guidType = GUID_YAxis;
	ddoi.dwOfs = This->offset_array[WINE_MOUSE_Y_POSITION];
	ddoi.dwType = DIDFT_MAKEINSTANCE(WINE_MOUSE_Y_AXIS_INSTANCE) | DIDFT_RELAXIS;
	strcpy(ddoi.tszName, "Y-Axis");
	_dump_OBJECTINSTANCEA(&ddoi);
	if (lpCallback(&ddoi, lpvRef) != DIENUM_CONTINUE) return DI_OK;
	
	/* Z axis */
	ddoi.guidType = GUID_ZAxis;
	ddoi.dwOfs = This->offset_array[WINE_MOUSE_Z_POSITION];
	ddoi.dwType = DIDFT_MAKEINSTANCE(WINE_MOUSE_Z_AXIS_INSTANCE) | DIDFT_RELAXIS;
	strcpy(ddoi.tszName, "Z-Axis");
	_dump_OBJECTINSTANCEA(&ddoi);
	if (lpCallback(&ddoi, lpvRef) != DIENUM_CONTINUE) return DI_OK;
    }

    if ((dwFlags == DIDFT_ALL) ||
	(dwFlags & DIDFT_BUTTON)) {
	ddoi.guidType = GUID_Button;
	
	/* Left button */
	ddoi.dwOfs = This->offset_array[WINE_MOUSE_L_POSITION];
	ddoi.dwType = DIDFT_MAKEINSTANCE(WINE_MOUSE_L_BUTTON_INSTANCE) | DIDFT_PSHBUTTON;
	strcpy(ddoi.tszName, "Left-Button");
	_dump_OBJECTINSTANCEA(&ddoi);
	if (lpCallback(&ddoi, lpvRef) != DIENUM_CONTINUE) return DI_OK;
	
	/* Right button */
	ddoi.dwOfs = This->offset_array[WINE_MOUSE_R_POSITION];
	ddoi.dwType = DIDFT_MAKEINSTANCE(WINE_MOUSE_R_BUTTON_INSTANCE) | DIDFT_PSHBUTTON;
	strcpy(ddoi.tszName, "Right-Button");
	_dump_OBJECTINSTANCEA(&ddoi);
	if (lpCallback(&ddoi, lpvRef) != DIENUM_CONTINUE) return DI_OK;
	
	/* Middle button */
	ddoi.dwOfs = This->offset_array[WINE_MOUSE_M_POSITION];
	ddoi.dwType = DIDFT_MAKEINSTANCE(WINE_MOUSE_M_BUTTON_INSTANCE) | DIDFT_PSHBUTTON;
	strcpy(ddoi.tszName, "Middle-Button");
	_dump_OBJECTINSTANCEA(&ddoi);
	if (lpCallback(&ddoi, lpvRef) != DIENUM_CONTINUE) return DI_OK;
    }
    
    return DI_OK;
}
5f5853d9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5853dc:	31 c0                	xor    %eax,%eax
5f5853de:	5b                   	pop    %ebx
5f5853df:	5e                   	pop    %esi
5f5853e0:	5f                   	pop    %edi
5f5853e1:	5d                   	pop    %ebp
5f5853e2:	c2 10 00             	ret    $0x10
5f5853e5:	a1 40 c9 58 5f       	mov    0x5f58c940,%eax
5f5853ea:	83 ec 0c             	sub    $0xc,%esp
5f5853ed:	89 85 ac fe ff ff    	mov    %eax,0xfffffeac(%ebp)
5f5853f3:	a1 44 c9 58 5f       	mov    0x5f58c944,%eax
5f5853f8:	89 85 b0 fe ff ff    	mov    %eax,0xfffffeb0(%ebp)
5f5853fe:	a1 48 c9 58 5f       	mov    0x5f58c948,%eax
5f585403:	89 85 b4 fe ff ff    	mov    %eax,0xfffffeb4(%ebp)
5f585409:	a1 4c c9 58 5f       	mov    0x5f58c94c,%eax
5f58540e:	89 85 b8 fe ff ff    	mov    %eax,0xfffffeb8(%ebp)
5f585414:	c7 85 c0 fe ff ff 01 	movl   $0x101,0xfffffec0(%ebp)
5f58541b:	01 00 00 
5f58541e:	8b 47 28             	mov    0x28(%edi),%eax
5f585421:	56                   	push   %esi
5f585422:	89 85 bc fe ff ff    	mov    %eax,0xfffffebc(%ebp)
5f585428:	c7 85 c8 fe ff ff 59 	movl   $0x78412d59,0xfffffec8(%ebp)
5f58542f:	2d 41 78 
5f585432:	66 c7 85 cc fe ff ff 	movw   $0x7369,0xfffffecc(%ebp)
5f585439:	69 73 
5f58543b:	c6 85 ce fe ff ff 00 	movb   $0x0,0xfffffece(%ebp)
5f585442:	e8 d9 bd ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
5f585447:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f58544a:	58                   	pop    %eax
5f58544b:	5a                   	pop    %edx
5f58544c:	51                   	push   %ecx
5f58544d:	56                   	push   %esi
5f58544e:	ff 55 0c             	call   *0xc(%ebp)
5f585451:	59                   	pop    %ecx
5f585452:	48                   	dec    %eax
5f585453:	5a                   	pop    %edx
5f585454:	75 83                	jne    5f5853d9 <_SysMouseAImpl_EnumObjects@16+0xb9>
5f585456:	a1 30 c9 58 5f       	mov    0x5f58c930,%eax
5f58545b:	83 ec 0c             	sub    $0xc,%esp
5f58545e:	89 85 ac fe ff ff    	mov    %eax,0xfffffeac(%ebp)
5f585464:	a1 34 c9 58 5f       	mov    0x5f58c934,%eax
5f585469:	89 85 b0 fe ff ff    	mov    %eax,0xfffffeb0(%ebp)
5f58546f:	a1 38 c9 58 5f       	mov    0x5f58c938,%eax
5f585474:	89 85 b4 fe ff ff    	mov    %eax,0xfffffeb4(%ebp)
5f58547a:	a1 3c c9 58 5f       	mov    0x5f58c93c,%eax
5f58547f:	89 85 b8 fe ff ff    	mov    %eax,0xfffffeb8(%ebp)
5f585485:	c7 85 c0 fe ff ff 01 	movl   $0x201,0xfffffec0(%ebp)
5f58548c:	02 00 00 
5f58548f:	8b 47 2c             	mov    0x2c(%edi),%eax
5f585492:	56                   	push   %esi
5f585493:	89 85 bc fe ff ff    	mov    %eax,0xfffffebc(%ebp)
5f585499:	c7 85 c8 fe ff ff 5a 	movl   $0x78412d5a,0xfffffec8(%ebp)
5f5854a0:	2d 41 78 
5f5854a3:	66 c7 85 cc fe ff ff 	movw   $0x7369,0xfffffecc(%ebp)
5f5854aa:	69 73 
5f5854ac:	c6 85 ce fe ff ff 00 	movb   $0x0,0xfffffece(%ebp)
5f5854b3:	e8 68 bd ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
5f5854b8:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f5854bb:	58                   	pop    %eax
5f5854bc:	5a                   	pop    %edx
5f5854bd:	51                   	push   %ecx
5f5854be:	56                   	push   %esi
5f5854bf:	ff 55 0c             	call   *0xc(%ebp)
5f5854c2:	59                   	pop    %ecx
5f5854c3:	48                   	dec    %eax
5f5854c4:	5a                   	pop    %edx
5f5854c5:	0f 85 0e ff ff ff    	jne    5f5853d9 <_SysMouseAImpl_EnumObjects@16+0xb9>
5f5854cb:	90                   	nop    
5f5854cc:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5854d0:	85 db                	test   %ebx,%ebx
5f5854d2:	74 09                	je     5f5854dd <_SysMouseAImpl_EnumObjects@16+0x1bd>
5f5854d4:	83 e3 0c             	and    $0xc,%ebx
5f5854d7:	0f 84 fc fe ff ff    	je     5f5853d9 <_SysMouseAImpl_EnumObjects@16+0xb9>
5f5854dd:	a1 80 d1 58 5f       	mov    0x5f58d180,%eax
5f5854e2:	83 ec 0c             	sub    $0xc,%esp
5f5854e5:	89 85 ac fe ff ff    	mov    %eax,0xfffffeac(%ebp)
5f5854eb:	a1 84 d1 58 5f       	mov    0x5f58d184,%eax
5f5854f0:	89 85 b0 fe ff ff    	mov    %eax,0xfffffeb0(%ebp)
5f5854f6:	a1 88 d1 58 5f       	mov    0x5f58d188,%eax
5f5854fb:	89 85 b4 fe ff ff    	mov    %eax,0xfffffeb4(%ebp)
5f585501:	a1 8c d1 58 5f       	mov    0x5f58d18c,%eax
5f585506:	89 85 b8 fe ff ff    	mov    %eax,0xfffffeb8(%ebp)
5f58550c:	c7 85 c0 fe ff ff 04 	movl   $0x4,0xfffffec0(%ebp)
5f585513:	00 00 00 
5f585516:	8b 47 30             	mov    0x30(%edi),%eax
5f585519:	56                   	push   %esi
5f58551a:	89 85 bc fe ff ff    	mov    %eax,0xfffffebc(%ebp)
5f585520:	c7 85 c8 fe ff ff 4c 	movl   $0x7466654c,0xfffffec8(%ebp)
5f585527:	65 66 74 
5f58552a:	c7 85 cc fe ff ff 2d 	movl   $0x7475422d,0xfffffecc(%ebp)
5f585531:	42 75 74 
5f585534:	c7 85 d0 fe ff ff 74 	movl   $0x6e6f74,0xfffffed0(%ebp)
5f58553b:	6f 6e 00 
5f58553e:	e8 dd bc ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
5f585543:	58                   	pop    %eax
5f585544:	8b 45 10             	mov    0x10(%ebp),%eax
5f585547:	5a                   	pop    %edx
5f585548:	50                   	push   %eax
5f585549:	56                   	push   %esi
5f58554a:	ff 55 0c             	call   *0xc(%ebp)
5f58554d:	59                   	pop    %ecx
5f58554e:	48                   	dec    %eax
5f58554f:	5b                   	pop    %ebx
5f585550:	0f 85 83 fe ff ff    	jne    5f5853d9 <_SysMouseAImpl_EnumObjects@16+0xb9>
5f585556:	83 ec 0c             	sub    $0xc,%esp
5f585559:	8b 47 34             	mov    0x34(%edi),%eax
5f58555c:	89 85 bc fe ff ff    	mov    %eax,0xfffffebc(%ebp)
5f585562:	c7 85 c0 fe ff ff 04 	movl   $0x104,0xfffffec0(%ebp)
5f585569:	01 00 00 
5f58556c:	56                   	push   %esi
5f58556d:	c7 85 c8 fe ff ff 52 	movl   $0x68676952,0xfffffec8(%ebp)
5f585574:	69 67 68 
5f585577:	c7 85 cc fe ff ff 74 	movl   $0x75422d74,0xfffffecc(%ebp)
5f58557e:	2d 42 75 
5f585581:	c7 85 d0 fe ff ff 74 	movl   $0x6e6f7474,0xfffffed0(%ebp)
5f585588:	74 6f 6e 
5f58558b:	c6 85 d4 fe ff ff 00 	movb   $0x0,0xfffffed4(%ebp)
5f585592:	e8 89 bc ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
5f585597:	58                   	pop    %eax
5f585598:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f58559b:	5a                   	pop    %edx
5f58559c:	53                   	push   %ebx
5f58559d:	56                   	push   %esi
5f58559e:	ff 55 0c             	call   *0xc(%ebp)
5f5855a1:	5a                   	pop    %edx
5f5855a2:	48                   	dec    %eax
5f5855a3:	59                   	pop    %ecx
5f5855a4:	0f 85 2f fe ff ff    	jne    5f5853d9 <_SysMouseAImpl_EnumObjects@16+0xb9>
5f5855aa:	83 ec 0c             	sub    $0xc,%esp
5f5855ad:	8b 47 38             	mov    0x38(%edi),%eax
5f5855b0:	89 85 bc fe ff ff    	mov    %eax,0xfffffebc(%ebp)
5f5855b6:	c7 85 c0 fe ff ff 04 	movl   $0x204,0xfffffec0(%ebp)
5f5855bd:	02 00 00 
5f5855c0:	56                   	push   %esi
5f5855c1:	c7 85 c8 fe ff ff 4d 	movl   $0x6464694d,0xfffffec8(%ebp)
5f5855c8:	69 64 64 
5f5855cb:	c7 85 cc fe ff ff 6c 	movl   $0x422d656c,0xfffffecc(%ebp)
5f5855d2:	65 2d 42 
5f5855d5:	c7 85 d0 fe ff ff 75 	movl   $0x6f747475,0xfffffed0(%ebp)
5f5855dc:	74 74 6f 
5f5855df:	66 c7 85 d4 fe ff ff 	movw   $0x6e,0xfffffed4(%ebp)
5f5855e6:	6e 00 
5f5855e8:	e8 33 bc ff ff       	call   5f581220 <__dump_OBJECTINSTANCEA>
5f5855ed:	5b                   	pop    %ebx
5f5855ee:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f5855f1:	5f                   	pop    %edi
5f5855f2:	51                   	push   %ecx
5f5855f3:	56                   	push   %esi
5f5855f4:	ff 55 0c             	call   *0xc(%ebp)
5f5855f7:	58                   	pop    %eax
5f5855f8:	5a                   	pop    %edx
5f5855f9:	e9 db fd ff ff       	jmp    5f5853d9 <_SysMouseAImpl_EnumObjects@16+0xb9>
5f5855fe:	89 f6                	mov    %esi,%esi

5f585600 <_SysMouseWImpl_EnumObjects@16>:

static HRESULT WINAPI SysMouseWImpl_EnumObjects(LPDIRECTINPUTDEVICE8W iface, LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback,	LPVOID lpvRef,DWORD dwFlags)
{
5f585600:	55                   	push   %ebp
5f585601:	89 e5                	mov    %esp,%ebp
5f585603:	50                   	push   %eax
5f585604:	50                   	push   %eax
    SysMouseImpl *This = (SysMouseImpl *)iface;
    
    device_enumobjects_AtoWcb_data data;
    
    data.lpCallBack = lpCallback;
5f585605:	8b 45 0c             	mov    0xc(%ebp),%eax
    data.lpvRef = lpvRef;
    
    return SysMouseAImpl_EnumObjects((LPDIRECTINPUTDEVICE8A) This, (LPDIENUMDEVICEOBJECTSCALLBACKA) DIEnumDevicesCallbackAtoW, (LPVOID) &data, dwFlags);
5f585608:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f58560b:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
5f58560e:	8b 45 10             	mov    0x10(%ebp),%eax
5f585611:	89 45 fc             	mov    %eax,0xfffffffc(%ebp)
5f585614:	8b 45 14             	mov    0x14(%ebp),%eax
5f585617:	50                   	push   %eax
5f585618:	8d 45 f8             	lea    0xfffffff8(%ebp),%eax
5f58561b:	50                   	push   %eax
5f58561c:	68 c0 17 58 5f       	push   $0x5f5817c0
5f585621:	51                   	push   %ecx
5f585622:	e8 f9 fc ff ff       	call   5f585320 <_SysMouseAImpl_EnumObjects@16>
}
5f585627:	c9                   	leave  
5f585628:	c2 10 00             	ret    $0x10
5f58562b:	90                   	nop    
5f58562c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f585630 <_SysMouseAImpl_GetDeviceInfo@8>:

/******************************************************************************
  *     GetDeviceInfo : get information about a device's identity
  */
static HRESULT WINAPI SysMouseAImpl_GetDeviceInfo(
	LPDIRECTINPUTDEVICE8A iface,
	LPDIDEVICEINSTANCEA pdidi)
{
5f585630:	55                   	push   %ebp
5f585631:	89 e5                	mov    %esp,%ebp
5f585633:	50                   	push   %eax
5f585634:	50                   	push   %eax
5f585635:	8b 4d 0c             	mov    0xc(%ebp),%ecx
    SysMouseImpl *This = (SysMouseImpl *)iface;
    TRACE("(this=%p,%p)\n", This, pdidi);

    if (pdidi->dwSize != sizeof(DIDEVICEINSTANCEA)) {
5f585638:	81 39 44 02 00 00    	cmpl   $0x244,(%ecx)
5f58563e:	74 06                	je     5f585646 <_SysMouseAImpl_GetDeviceInfo@8+0x16>
        WARN(" dinput3 not supporte yet...\n");
	return DI_OK;
    }

    fill_mouse_dideviceinstanceA(pdidi, This->dinput->version);
    
    return DI_OK;
}
5f585640:	31 c0                	xor    %eax,%eax
5f585642:	c9                   	leave  
5f585643:	c2 08 00             	ret    $0x8
5f585646:	8b 45 08             	mov    0x8(%ebp),%eax
5f585649:	8b 40 18             	mov    0x18(%eax),%eax
5f58564c:	8b 50 0c             	mov    0xc(%eax),%edx
5f58564f:	89 c8                	mov    %ecx,%eax
5f585651:	e8 fa e9 ff ff       	call   5f584050 <_fill_mouse_dideviceinstanceA>
5f585656:	31 c0                	xor    %eax,%eax
5f585658:	c9                   	leave  
5f585659:	c2 08 00             	ret    $0x8
5f58565c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f585660 <_SysMouseWImpl_GetDeviceInfo@8>:

static HRESULT WINAPI SysMouseWImpl_GetDeviceInfo(LPDIRECTINPUTDEVICE8W iface, LPDIDEVICEINSTANCEW pdidi)
{
5f585660:	55                   	push   %ebp
5f585661:	89 e5                	mov    %esp,%ebp
5f585663:	50                   	push   %eax
5f585664:	50                   	push   %eax
5f585665:	8b 4d 0c             	mov    0xc(%ebp),%ecx
    SysMouseImpl *This = (SysMouseImpl *)iface;
    TRACE("(this=%p,%p)\n", This, pdidi);

    if (pdidi->dwSize != sizeof(DIDEVICEINSTANCEW)) {
5f585668:	81 39 4c 04 00 00    	cmpl   $0x44c,(%ecx)
5f58566e:	74 06                	je     5f585676 <_SysMouseWImpl_GetDeviceInfo@8+0x16>
        WARN(" dinput3 not supporte yet...\n");
	return DI_OK;
    }

    fill_mouse_dideviceinstanceW(pdidi, This->dinput->version);
    
    return DI_OK;
}
5f585670:	31 c0                	xor    %eax,%eax
5f585672:	c9                   	leave  
5f585673:	c2 08 00             	ret    $0x8
5f585676:	8b 45 08             	mov    0x8(%ebp),%eax
5f585679:	8b 40 18             	mov    0x18(%eax),%eax
5f58567c:	8b 50 0c             	mov    0xc(%eax),%edx
5f58567f:	89 c8                	mov    %ecx,%eax
5f585681:	e8 1a eb ff ff       	call   5f5841a0 <_fill_mouse_dideviceinstanceW>
5f585686:	31 c0                	xor    %eax,%eax
5f585688:	c9                   	leave  
5f585689:	c2 08 00             	ret    $0x8
5f58568c:	90                   	nop    
5f58568d:	90                   	nop    
5f58568e:	90                   	nop    
5f58568f:	90                   	nop    

5f585690 <_register_key_defvalueA>:
5f585690:	55                   	push   %ebp
5f585691:	89 e5                	mov    %esp,%ebp
5f585693:	56                   	push   %esi
5f585694:	53                   	push   %ebx
5f585695:	83 ec 1c             	sub    $0x1c,%esp
5f585698:	8d 4d f4             	lea    0xfffffff4(%ebp),%ecx
5f58569b:	8b 75 08             	mov    0x8(%ebp),%esi
5f58569e:	6a 00                	push   $0x0
5f5856a0:	51                   	push   %ecx
5f5856a1:	6a 00                	push   $0x0
5f5856a3:	68 1f 00 02 00       	push   $0x2001f
5f5856a8:	6a 00                	push   $0x0
5f5856aa:	6a 00                	push   $0x0
5f5856ac:	6a 00                	push   $0x0
5f5856ae:	52                   	push   %edx
5f5856af:	50                   	push   %eax
5f5856b0:	e8 cb 0f 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f5856b5:	83 c4 0c             	add    $0xc,%esp
5f5856b8:	89 c3                	mov    %eax,%ebx
5f5856ba:	85 c0                	test   %eax,%eax
5f5856bc:	74 09                	je     5f5856c7 <_register_key_defvalueA+0x37>
5f5856be:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5856c1:	89 d8                	mov    %ebx,%eax
5f5856c3:	5b                   	pop    %ebx
5f5856c4:	5e                   	pop    %esi
5f5856c5:	5d                   	pop    %ebp
5f5856c6:	c3                   	ret    
5f5856c7:	83 ec 0c             	sub    $0xc,%esp
5f5856ca:	56                   	push   %esi
5f5856cb:	e8 00 11 00 00       	call   5f5867d0 <_lstrlenA@4>
5f5856d0:	40                   	inc    %eax
5f5856d1:	89 04 24             	mov    %eax,(%esp)
5f5856d4:	56                   	push   %esi
5f5856d5:	6a 01                	push   $0x1
5f5856d7:	6a 00                	push   $0x0
5f5856d9:	6a 00                	push   $0x0
5f5856db:	8b 4d f4             	mov    0xfffffff4(%ebp),%ecx
5f5856de:	51                   	push   %ecx
5f5856df:	e8 ac 0f 00 00       	call   5f586690 <_RegSetValueExA@24>
5f5856e4:	89 c3                	mov    %eax,%ebx
5f5856e6:	52                   	push   %edx
5f5856e7:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
5f5856ea:	50                   	push   %eax
5f5856eb:	e8 b0 0f 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f5856f0:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5856f3:	89 d8                	mov    %ebx,%eax
5f5856f5:	5b                   	pop    %ebx
5f5856f6:	5e                   	pop    %esi
5f5856f7:	5d                   	pop    %ebp
5f5856f8:	c3                   	ret    
5f5856f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f585700 <_register_key_defvalueW>:
5f585700:	55                   	push   %ebp
5f585701:	89 e5                	mov    %esp,%ebp
5f585703:	56                   	push   %esi
5f585704:	53                   	push   %ebx
5f585705:	83 ec 1c             	sub    $0x1c,%esp
5f585708:	8d 4d f4             	lea    0xfffffff4(%ebp),%ecx
5f58570b:	8b 75 08             	mov    0x8(%ebp),%esi
5f58570e:	6a 00                	push   $0x0
5f585710:	51                   	push   %ecx
5f585711:	6a 00                	push   $0x0
5f585713:	68 1f 00 02 00       	push   $0x2001f
5f585718:	6a 00                	push   $0x0
5f58571a:	6a 00                	push   $0x0
5f58571c:	6a 00                	push   $0x0
5f58571e:	52                   	push   %edx
5f58571f:	50                   	push   %eax
5f585720:	e8 5b 0f 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f585725:	83 c4 0c             	add    $0xc,%esp
5f585728:	89 c3                	mov    %eax,%ebx
5f58572a:	85 c0                	test   %eax,%eax
5f58572c:	74 09                	je     5f585737 <_register_key_defvalueW+0x37>
5f58572e:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f585731:	89 d8                	mov    %ebx,%eax
5f585733:	5b                   	pop    %ebx
5f585734:	5e                   	pop    %esi
5f585735:	5d                   	pop    %ebp
5f585736:	c3                   	ret    
5f585737:	83 ec 0c             	sub    $0xc,%esp
5f58573a:	56                   	push   %esi
5f58573b:	e8 a0 10 00 00       	call   5f5867e0 <_lstrlenW@4>
5f585740:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
5f585744:	89 04 24             	mov    %eax,(%esp)
5f585747:	56                   	push   %esi
5f585748:	6a 01                	push   $0x1
5f58574a:	6a 00                	push   $0x0
5f58574c:	6a 00                	push   $0x0
5f58574e:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
5f585751:	50                   	push   %eax
5f585752:	e8 59 0f 00 00       	call   5f5866b0 <_RegSetValueExW@24>
5f585757:	89 c3                	mov    %eax,%ebx
5f585759:	50                   	push   %eax
5f58575a:	8b 75 f4             	mov    0xfffffff4(%ebp),%esi
5f58575d:	56                   	push   %esi
5f58575e:	e8 3d 0f 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585763:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f585766:	89 d8                	mov    %ebx,%eax
5f585768:	5b                   	pop    %ebx
5f585769:	5e                   	pop    %esi
5f58576a:	5d                   	pop    %ebp
5f58576b:	c3                   	ret    
5f58576c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f585770 <_register_key_guid>:
5f585770:	55                   	push   %ebp
5f585771:	89 e5                	mov    %esp,%ebp
5f585773:	57                   	push   %edi
5f585774:	56                   	push   %esi
5f585775:	53                   	push   %ebx
5f585776:	83 ec 60             	sub    $0x60,%esp
5f585779:	8d 5d 98             	lea    0xffffff98(%ebp),%ebx
5f58577c:	89 c7                	mov    %eax,%edi
5f58577e:	8b 45 08             	mov    0x8(%ebp),%eax
5f585781:	89 d6                	mov    %edx,%esi
5f585783:	6a 27                	push   $0x27
5f585785:	53                   	push   %ebx
5f585786:	50                   	push   %eax
5f585787:	e8 24 0e 00 00       	call   5f5865b0 <_StringFromGUID2@12>
5f58578c:	89 f2                	mov    %esi,%edx
5f58578e:	50                   	push   %eax
5f58578f:	50                   	push   %eax
5f585790:	89 f8                	mov    %edi,%eax
5f585792:	53                   	push   %ebx
5f585793:	e8 68 ff ff ff       	call   5f585700 <_register_key_defvalueW>
5f585798:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58579b:	5b                   	pop    %ebx
5f58579c:	5e                   	pop    %esi
5f58579d:	5f                   	pop    %edi
5f58579e:	5d                   	pop    %ebp
5f58579f:	c3                   	ret    

5f5857a0 <_register_progid>:
5f5857a0:	55                   	push   %ebp
5f5857a1:	89 e5                	mov    %esp,%ebp
5f5857a3:	57                   	push   %edi
5f5857a4:	56                   	push   %esi
5f5857a5:	53                   	push   %ebx
5f5857a6:	83 ec 18             	sub    $0x18,%esp
5f5857a9:	89 c7                	mov    %eax,%edi
5f5857ab:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
5f5857ae:	8b 75 0c             	mov    0xc(%ebp),%esi
5f5857b1:	6a 00                	push   $0x0
5f5857b3:	50                   	push   %eax
5f5857b4:	6a 00                	push   $0x0
5f5857b6:	68 1f 00 02 00       	push   $0x2001f
5f5857bb:	6a 00                	push   $0x0
5f5857bd:	6a 00                	push   $0x0
5f5857bf:	6a 00                	push   $0x0
5f5857c1:	52                   	push   %edx
5f5857c2:	68 00 00 00 80       	push   $0x80000000
5f5857c7:	e8 f4 0e 00 00       	call   5f5866c0 <_RegCreateKeyExA@36>
5f5857cc:	83 c4 0c             	add    $0xc,%esp
5f5857cf:	89 c3                	mov    %eax,%ebx
5f5857d1:	85 c0                	test   %eax,%eax
5f5857d3:	0f 85 aa 00 00 00    	jne    5f585883 <_register_progid+0xe3>
5f5857d9:	85 f6                	test   %esi,%esi
5f5857db:	74 25                	je     5f585802 <_register_progid+0x62>
5f5857dd:	83 ec 0c             	sub    $0xc,%esp
5f5857e0:	56                   	push   %esi
5f5857e1:	e8 9a 1d 00 00       	call   5f587580 <_strlen>
5f5857e6:	5b                   	pop    %ebx
5f5857e7:	40                   	inc    %eax
5f5857e8:	5a                   	pop    %edx
5f5857e9:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
5f5857ec:	50                   	push   %eax
5f5857ed:	56                   	push   %esi
5f5857ee:	6a 01                	push   $0x1
5f5857f0:	6a 00                	push   $0x0
5f5857f2:	6a 00                	push   $0x0
5f5857f4:	51                   	push   %ecx
5f5857f5:	e8 96 0e 00 00       	call   5f586690 <_RegSetValueExA@24>
5f5857fa:	89 c3                	mov    %eax,%ebx
5f5857fc:	58                   	pop    %eax
5f5857fd:	85 db                	test   %ebx,%ebx
5f5857ff:	5a                   	pop    %edx
5f585800:	75 75                	jne    5f585877 <_register_progid+0xd7>
5f585802:	85 ff                	test   %edi,%edi
5f585804:	74 1a                	je     5f585820 <_register_progid+0x80>
5f585806:	83 ec 0c             	sub    $0xc,%esp
5f585809:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f58580c:	ba f0 b3 58 5f       	mov    $0x5f58b3f0,%edx
5f585811:	57                   	push   %edi
5f585812:	e8 e9 fe ff ff       	call   5f585700 <_register_key_defvalueW>
5f585817:	83 c4 10             	add    $0x10,%esp
5f58581a:	89 c3                	mov    %eax,%ebx
5f58581c:	85 c0                	test   %eax,%eax
5f58581e:	75 57                	jne    5f585877 <_register_progid+0xd7>
5f585820:	8b 45 08             	mov    0x8(%ebp),%eax
5f585823:	85 c0                	test   %eax,%eax
5f585825:	74 1d                	je     5f585844 <_register_progid+0xa4>
5f585827:	83 ec 0c             	sub    $0xc,%esp
5f58582a:	8b 7d 08             	mov    0x8(%ebp),%edi
5f58582d:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f585830:	ba 98 b4 58 5f       	mov    $0x5f58b498,%edx
5f585835:	57                   	push   %edi
5f585836:	e8 55 fe ff ff       	call   5f585690 <_register_key_defvalueA>
5f58583b:	83 c4 10             	add    $0x10,%esp
5f58583e:	89 c3                	mov    %eax,%ebx
5f585840:	85 c0                	test   %eax,%eax
5f585842:	75 33                	jne    5f585877 <_register_progid+0xd7>
5f585844:	8b 75 10             	mov    0x10(%ebp),%esi
5f585847:	85 f6                	test   %esi,%esi
5f585849:	74 2c                	je     5f585877 <_register_progid+0xd7>
5f58584b:	83 ec 0c             	sub    $0xc,%esp
5f58584e:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
5f585851:	8b 4d 10             	mov    0x10(%ebp),%ecx
5f585854:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
5f585857:	6a 00                	push   $0x0
5f585859:	50                   	push   %eax
5f58585a:	6a 00                	push   $0x0
5f58585c:	68 1f 00 02 00       	push   $0x2001f
5f585861:	6a 00                	push   $0x0
5f585863:	6a 00                	push   $0x0
5f585865:	6a 00                	push   $0x0
5f585867:	51                   	push   %ecx
5f585868:	52                   	push   %edx
5f585869:	e8 52 0e 00 00       	call   5f5866c0 <_RegCreateKeyExA@36>
5f58586e:	83 c4 0c             	add    $0xc,%esp
5f585871:	89 c3                	mov    %eax,%ebx
5f585873:	85 c0                	test   %eax,%eax
5f585875:	74 16                	je     5f58588d <_register_progid+0xed>
5f585877:	83 ec 0c             	sub    $0xc,%esp
5f58587a:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f58587d:	50                   	push   %eax
5f58587e:	e8 1d 0e 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585883:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f585886:	89 d8                	mov    %ebx,%eax
5f585888:	5b                   	pop    %ebx
5f585889:	5e                   	pop    %esi
5f58588a:	5f                   	pop    %edi
5f58588b:	5d                   	pop    %ebp
5f58588c:	c3                   	ret    
5f58588d:	83 ec 0c             	sub    $0xc,%esp
5f585890:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f585893:	50                   	push   %eax
5f585894:	e8 07 0e 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585899:	83 c4 0c             	add    $0xc,%esp
5f58589c:	eb d9                	jmp    5f585877 <_register_progid+0xd7>
5f58589e:	89 f6                	mov    %esi,%esi

5f5858a0 <_recursive_delete_key>:
5f5858a0:	55                   	push   %ebp
5f5858a1:	89 e5                	mov    %esp,%ebp
5f5858a3:	57                   	push   %edi
5f5858a4:	56                   	push   %esi
5f5858a5:	53                   	push   %ebx
5f5858a6:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
5f5858ac:	89 c6                	mov    %eax,%esi
5f5858ae:	8d bd d8 fd ff ff    	lea    0xfffffdd8(%ebp),%edi
5f5858b4:	c7 85 d4 fd ff ff 04 	movl   $0x104,0xfffffdd4(%ebp)
5f5858bb:	01 00 00 
5f5858be:	8d 85 d4 fd ff ff    	lea    0xfffffdd4(%ebp),%eax
5f5858c4:	6a 00                	push   $0x0
5f5858c6:	6a 00                	push   $0x0
5f5858c8:	6a 00                	push   $0x0
5f5858ca:	6a 00                	push   $0x0
5f5858cc:	50                   	push   %eax
5f5858cd:	57                   	push   %edi
5f5858ce:	6a 00                	push   $0x0
5f5858d0:	56                   	push   %esi
5f5858d1:	e8 fa 0d 00 00       	call   5f5866d0 <_RegEnumKeyExW@32>
5f5858d6:	85 c0                	test   %eax,%eax
5f5858d8:	0f 95 c2             	setne  %dl
5f5858db:	3d ea 00 00 00       	cmp    $0xea,%eax
5f5858e0:	0f 95 c0             	setne  %al
5f5858e3:	25 ff 00 00 00       	and    $0xff,%eax
5f5858e8:	85 c2                	test   %eax,%edx
5f5858ea:	75 57                	jne    5f585943 <_recursive_delete_key+0xa3>
5f5858ec:	83 ec 0c             	sub    $0xc,%esp
5f5858ef:	8d 85 d0 fd ff ff    	lea    0xfffffdd0(%ebp),%eax
5f5858f5:	50                   	push   %eax
5f5858f6:	68 1f 00 02 00       	push   $0x2001f
5f5858fb:	6a 00                	push   $0x0
5f5858fd:	57                   	push   %edi
5f5858fe:	56                   	push   %esi
5f5858ff:	e8 dc 0d 00 00       	call   5f5866e0 <_RegOpenKeyExW@20>
5f585904:	83 c4 0c             	add    $0xc,%esp
5f585907:	89 c3                	mov    %eax,%ebx
5f585909:	83 f8 02             	cmp    $0x2,%eax
5f58590c:	74 a6                	je     5f5858b4 <_recursive_delete_key+0x14>
5f58590e:	85 c0                	test   %eax,%eax
5f585910:	75 27                	jne    5f585939 <_recursive_delete_key+0x99>
5f585912:	8b 85 d0 fd ff ff    	mov    0xfffffdd0(%ebp),%eax
5f585918:	e8 83 ff ff ff       	call   5f5858a0 <_recursive_delete_key>
5f58591d:	83 ec 0c             	sub    $0xc,%esp
5f585920:	89 c3                	mov    %eax,%ebx
5f585922:	8b 85 d0 fd ff ff    	mov    0xfffffdd0(%ebp),%eax
5f585928:	50                   	push   %eax
5f585929:	e8 72 0d 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f58592e:	83 c4 0c             	add    $0xc,%esp
5f585931:	85 db                	test   %ebx,%ebx
5f585933:	0f 84 7b ff ff ff    	je     5f5858b4 <_recursive_delete_key+0x14>
5f585939:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f58593c:	89 d8                	mov    %ebx,%eax
5f58593e:	5b                   	pop    %ebx
5f58593f:	5e                   	pop    %esi
5f585940:	5f                   	pop    %edi
5f585941:	5d                   	pop    %ebp
5f585942:	c3                   	ret    
5f585943:	57                   	push   %edi
5f585944:	57                   	push   %edi
5f585945:	6a 00                	push   $0x0
5f585947:	56                   	push   %esi
5f585948:	e8 a3 0d 00 00       	call   5f5866f0 <_RegDeleteKeyW@8>
5f58594d:	89 c3                	mov    %eax,%ebx
5f58594f:	59                   	pop    %ecx
5f585950:	89 d8                	mov    %ebx,%eax
5f585952:	5e                   	pop    %esi
5f585953:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f585956:	5b                   	pop    %ebx
5f585957:	5e                   	pop    %esi
5f585958:	5f                   	pop    %edi
5f585959:	5d                   	pop    %ebp
5f58595a:	c3                   	ret    
5f58595b:	90                   	nop    
5f58595c:	8d 74 26 00          	lea    0x0(%esi),%esi

5f585960 <_recursive_delete_keyW>:
5f585960:	55                   	push   %ebp
5f585961:	89 e5                	mov    %esp,%ebp
5f585963:	53                   	push   %ebx
5f585964:	83 ec 10             	sub    $0x10,%esp
5f585967:	8d 4d f8             	lea    0xfffffff8(%ebp),%ecx
5f58596a:	51                   	push   %ecx
5f58596b:	68 1f 00 02 00       	push   $0x2001f
5f585970:	6a 00                	push   $0x0
5f585972:	52                   	push   %edx
5f585973:	50                   	push   %eax
5f585974:	e8 67 0d 00 00       	call   5f5866e0 <_RegOpenKeyExW@20>
5f585979:	89 c3                	mov    %eax,%ebx
5f58597b:	83 c4 0c             	add    $0xc,%esp
5f58597e:	31 c0                	xor    %eax,%eax
5f585980:	83 fb 02             	cmp    $0x2,%ebx
5f585983:	74 06                	je     5f58598b <_recursive_delete_keyW+0x2b>
5f585985:	89 d8                	mov    %ebx,%eax
5f585987:	85 db                	test   %ebx,%ebx
5f585989:	74 05                	je     5f585990 <_recursive_delete_keyW+0x30>
5f58598b:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f58598e:	c9                   	leave  
5f58598f:	c3                   	ret    
5f585990:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
5f585993:	e8 08 ff ff ff       	call   5f5858a0 <_recursive_delete_key>
5f585998:	83 ec 0c             	sub    $0xc,%esp
5f58599b:	89 c3                	mov    %eax,%ebx
5f58599d:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
5f5859a0:	50                   	push   %eax
5f5859a1:	e8 fa 0c 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f5859a6:	89 d8                	mov    %ebx,%eax
5f5859a8:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f5859ab:	c9                   	leave  
5f5859ac:	c3                   	ret    
5f5859ad:	8d 76 00             	lea    0x0(%esi),%esi

5f5859b0 <_recursive_delete_keyA>:
5f5859b0:	55                   	push   %ebp
5f5859b1:	89 e5                	mov    %esp,%ebp
5f5859b3:	53                   	push   %ebx
5f5859b4:	83 ec 10             	sub    $0x10,%esp
5f5859b7:	8d 4d f8             	lea    0xfffffff8(%ebp),%ecx
5f5859ba:	51                   	push   %ecx
5f5859bb:	68 1f 00 02 00       	push   $0x2001f
5f5859c0:	6a 00                	push   $0x0
5f5859c2:	52                   	push   %edx
5f5859c3:	50                   	push   %eax
5f5859c4:	e8 37 0d 00 00       	call   5f586700 <_RegOpenKeyExA@20>
5f5859c9:	89 c3                	mov    %eax,%ebx
5f5859cb:	83 c4 0c             	add    $0xc,%esp
5f5859ce:	31 c0                	xor    %eax,%eax
5f5859d0:	83 fb 02             	cmp    $0x2,%ebx
5f5859d3:	74 06                	je     5f5859db <_recursive_delete_keyA+0x2b>
5f5859d5:	89 d8                	mov    %ebx,%eax
5f5859d7:	85 db                	test   %ebx,%ebx
5f5859d9:	74 05                	je     5f5859e0 <_recursive_delete_keyA+0x30>
5f5859db:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f5859de:	c9                   	leave  
5f5859df:	c3                   	ret    
5f5859e0:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
5f5859e3:	e8 b8 fe ff ff       	call   5f5858a0 <_recursive_delete_key>
5f5859e8:	83 ec 0c             	sub    $0xc,%esp
5f5859eb:	89 c3                	mov    %eax,%ebx
5f5859ed:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
5f5859f0:	50                   	push   %eax
5f5859f1:	e8 aa 0c 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f5859f6:	89 d8                	mov    %ebx,%eax
5f5859f8:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f5859fb:	c9                   	leave  
5f5859fc:	c3                   	ret    
5f5859fd:	8d 76 00             	lea    0x0(%esi),%esi

5f585a00 <_DINPUT_DllRegisterServer@0>:
5f585a00:	55                   	push   %ebp
5f585a01:	89 e5                	mov    %esp,%ebp
5f585a03:	57                   	push   %edi
5f585a04:	56                   	push   %esi
5f585a05:	53                   	push   %ebx
5f585a06:	81 ec d8 00 00 00    	sub    $0xd8,%esp
5f585a0c:	8d 85 44 ff ff ff    	lea    0xffffff44(%ebp),%eax
5f585a12:	bf 90 b3 58 5f       	mov    $0x5f58b390,%edi
5f585a17:	6a 00                	push   $0x0
5f585a19:	50                   	push   %eax
5f585a1a:	6a 00                	push   $0x0
5f585a1c:	68 1f 00 02 00       	push   $0x2001f
5f585a21:	6a 00                	push   $0x0
5f585a23:	6a 00                	push   $0x0
5f585a25:	6a 00                	push   $0x0
5f585a27:	68 f0 b3 58 5f       	push   $0x5f58b3f0
5f585a2c:	68 00 00 00 80       	push   $0x80000000
5f585a31:	e8 4a 0c 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f585a36:	83 c4 0c             	add    $0xc,%esp
5f585a39:	89 c6                	mov    %eax,%esi
5f585a3b:	85 c0                	test   %eax,%eax
5f585a3d:	0f 85 bf 00 00 00    	jne    5f585b02 <_DINPUT_DllRegisterServer@0+0x102>
5f585a43:	a1 90 b3 58 5f       	mov    0x5f58b390,%eax
5f585a48:	85 c0                	test   %eax,%eax
5f585a4a:	0f 84 9a 00 00 00    	je     5f585aea <_DINPUT_DllRegisterServer@0+0xea>
5f585a50:	50                   	push   %eax
5f585a51:	8d 45 98             	lea    0xffffff98(%ebp),%eax
5f585a54:	6a 27                	push   $0x27
5f585a56:	50                   	push   %eax
5f585a57:	8b 37                	mov    (%edi),%esi
5f585a59:	56                   	push   %esi
5f585a5a:	e8 51 0b 00 00       	call   5f5865b0 <_StringFromGUID2@12>
5f585a5f:	8d 85 40 ff ff ff    	lea    0xffffff40(%ebp),%eax
5f585a65:	8b 8d 44 ff ff ff    	mov    0xffffff44(%ebp),%ecx
5f585a6b:	53                   	push   %ebx
5f585a6c:	53                   	push   %ebx
5f585a6d:	6a 00                	push   $0x0
5f585a6f:	50                   	push   %eax
5f585a70:	8d 45 98             	lea    0xffffff98(%ebp),%eax
5f585a73:	6a 00                	push   $0x0
5f585a75:	68 1f 00 02 00       	push   $0x2001f
5f585a7a:	6a 00                	push   $0x0
5f585a7c:	6a 00                	push   $0x0
5f585a7e:	6a 00                	push   $0x0
5f585a80:	50                   	push   %eax
5f585a81:	51                   	push   %ecx
5f585a82:	e8 f9 0b 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f585a87:	83 c4 0c             	add    $0xc,%esp
5f585a8a:	89 c6                	mov    %eax,%esi
5f585a8c:	85 c0                	test   %eax,%eax
5f585a8e:	75 5a                	jne    5f585aea <_DINPUT_DllRegisterServer@0+0xea>
5f585a90:	8b 5f 04             	mov    0x4(%edi),%ebx
5f585a93:	85 db                	test   %ebx,%ebx
5f585a95:	0f 85 25 02 00 00    	jne    5f585cc0 <_DINPUT_DllRegisterServer@0+0x2c0>
5f585a9b:	8b 57 08             	mov    0x8(%edi),%edx
5f585a9e:	85 d2                	test   %edx,%edx
5f585aa0:	0f 85 51 02 00 00    	jne    5f585cf7 <_DINPUT_DllRegisterServer@0+0x2f7>
5f585aa6:	8b 47 0c             	mov    0xc(%edi),%eax
5f585aa9:	85 c0                	test   %eax,%eax
5f585aab:	0f 85 72 02 00 00    	jne    5f585d23 <_DINPUT_DllRegisterServer@0+0x323>
5f585ab1:	8b 57 14             	mov    0x14(%edi),%edx
5f585ab4:	85 d2                	test   %edx,%edx
5f585ab6:	0f 85 fc 02 00 00    	jne    5f585db8 <_DINPUT_DllRegisterServer@0+0x3b8>
5f585abc:	8b 57 18             	mov    0x18(%edi),%edx
5f585abf:	85 d2                	test   %edx,%edx
5f585ac1:	0f 85 40 03 00 00    	jne    5f585e07 <_DINPUT_DllRegisterServer@0+0x407>
5f585ac7:	83 ec 0c             	sub    $0xc,%esp
5f585aca:	8b 85 40 ff ff ff    	mov    0xffffff40(%ebp),%eax
5f585ad0:	83 c7 20             	add    $0x20,%edi
5f585ad3:	50                   	push   %eax
5f585ad4:	e8 c7 0b 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585ad9:	83 c4 0c             	add    $0xc,%esp
5f585adc:	85 f6                	test   %esi,%esi
5f585ade:	75 0a                	jne    5f585aea <_DINPUT_DllRegisterServer@0+0xea>
5f585ae0:	8b 07                	mov    (%edi),%eax
5f585ae2:	85 c0                	test   %eax,%eax
5f585ae4:	0f 85 66 ff ff ff    	jne    5f585a50 <_DINPUT_DllRegisterServer@0+0x50>
5f585aea:	83 ec 0c             	sub    $0xc,%esp
5f585aed:	8b 85 44 ff ff ff    	mov    0xffffff44(%ebp),%eax
5f585af3:	50                   	push   %eax
5f585af4:	e8 a7 0b 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585af9:	31 c0                	xor    %eax,%eax
5f585afb:	83 c4 0c             	add    $0xc,%esp
5f585afe:	85 f6                	test   %esi,%esi
5f585b00:	74 0c                	je     5f585b0e <_DINPUT_DllRegisterServer@0+0x10e>
5f585b02:	89 f0                	mov    %esi,%eax
5f585b04:	25 ff ff 00 00       	and    $0xffff,%eax
5f585b09:	0d 00 00 07 80       	or     $0x80070000,%eax
5f585b0e:	85 c0                	test   %eax,%eax
5f585b10:	0f 88 a1 01 00 00    	js     5f585cb7 <_DINPUT_DllRegisterServer@0+0x2b7>
5f585b16:	83 ec 0c             	sub    $0xc,%esp
5f585b19:	8d 85 38 ff ff ff    	lea    0xffffff38(%ebp),%eax
5f585b1f:	bf 30 b3 58 5f       	mov    $0x5f58b330,%edi
5f585b24:	6a 00                	push   $0x0
5f585b26:	50                   	push   %eax
5f585b27:	6a 00                	push   $0x0
5f585b29:	68 1f 00 02 00       	push   $0x2001f
5f585b2e:	6a 00                	push   $0x0
5f585b30:	6a 00                	push   $0x0
5f585b32:	6a 00                	push   $0x0
5f585b34:	68 fc b3 58 5f       	push   $0x5f58b3fc
5f585b39:	68 00 00 00 80       	push   $0x80000000
5f585b3e:	e8 3d 0b 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f585b43:	83 c4 0c             	add    $0xc,%esp
5f585b46:	89 c6                	mov    %eax,%esi
5f585b48:	85 c0                	test   %eax,%eax
5f585b4a:	0f 85 5b 01 00 00    	jne    5f585cab <_DINPUT_DllRegisterServer@0+0x2ab>
5f585b50:	a1 30 b3 58 5f       	mov    0x5f58b330,%eax
5f585b55:	85 c0                	test   %eax,%eax
5f585b57:	0f 84 36 01 00 00    	je     5f585c93 <_DINPUT_DllRegisterServer@0+0x293>
5f585b5d:	8d 76 00             	lea    0x0(%esi),%esi
5f585b60:	50                   	push   %eax
5f585b61:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
5f585b67:	6a 27                	push   $0x27
5f585b69:	50                   	push   %eax
5f585b6a:	8b 37                	mov    (%edi),%esi
5f585b6c:	56                   	push   %esi
5f585b6d:	e8 3e 0a 00 00       	call   5f5865b0 <_StringFromGUID2@12>
5f585b72:	8d 85 34 ff ff ff    	lea    0xffffff34(%ebp),%eax
5f585b78:	8b 8d 38 ff ff ff    	mov    0xffffff38(%ebp),%ecx
5f585b7e:	53                   	push   %ebx
5f585b7f:	53                   	push   %ebx
5f585b80:	6a 00                	push   $0x0
5f585b82:	50                   	push   %eax
5f585b83:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
5f585b89:	6a 00                	push   $0x0
5f585b8b:	68 1f 00 02 00       	push   $0x2001f
5f585b90:	6a 00                	push   $0x0
5f585b92:	6a 00                	push   $0x0
5f585b94:	6a 00                	push   $0x0
5f585b96:	50                   	push   %eax
5f585b97:	51                   	push   %ecx
5f585b98:	e8 e3 0a 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f585b9d:	83 c4 0c             	add    $0xc,%esp
5f585ba0:	89 c6                	mov    %eax,%esi
5f585ba2:	85 c0                	test   %eax,%eax
5f585ba4:	0f 85 e9 00 00 00    	jne    5f585c93 <_DINPUT_DllRegisterServer@0+0x293>
5f585baa:	8b 5f 04             	mov    0x4(%edi),%ebx
5f585bad:	85 db                	test   %ebx,%ebx
5f585baf:	0f 85 9b 02 00 00    	jne    5f585e50 <_DINPUT_DllRegisterServer@0+0x450>
5f585bb5:	8b 57 08             	mov    0x8(%edi),%edx
5f585bb8:	85 d2                	test   %edx,%edx
5f585bba:	0f 85 c7 02 00 00    	jne    5f585e87 <_DINPUT_DllRegisterServer@0+0x487>
5f585bc0:	8b 47 0c             	mov    0xc(%edi),%eax
5f585bc3:	85 c0                	test   %eax,%eax
5f585bc5:	0f 88 8d 00 00 00    	js     5f585c58 <_DINPUT_DllRegisterServer@0+0x258>
5f585bcb:	83 ec 0c             	sub    $0xc,%esp
5f585bce:	8d 85 30 ff ff ff    	lea    0xffffff30(%ebp),%eax
5f585bd4:	6a 00                	push   $0x0
5f585bd6:	50                   	push   %eax
5f585bd7:	8b 85 34 ff ff ff    	mov    0xffffff34(%ebp),%eax
5f585bdd:	6a 00                	push   $0x0
5f585bdf:	68 1f 00 02 00       	push   $0x2001f
5f585be4:	6a 00                	push   $0x0
5f585be6:	6a 00                	push   $0x0
5f585be8:	6a 00                	push   $0x0
5f585bea:	68 f0 b4 58 5f       	push   $0x5f58b4f0
5f585bef:	50                   	push   %eax
5f585bf0:	e8 8b 0a 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f585bf5:	83 c4 0c             	add    $0xc,%esp
5f585bf8:	89 c6                	mov    %eax,%esi
5f585bfa:	85 c0                	test   %eax,%eax
5f585bfc:	75 72                	jne    5f585c70 <_DINPUT_DllRegisterServer@0+0x270>
5f585bfe:	50                   	push   %eax
5f585bff:	8b 77 0c             	mov    0xc(%edi),%esi
5f585c02:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
5f585c08:	56                   	push   %esi
5f585c09:	68 22 b5 58 5f       	push   $0x5f58b522
5f585c0e:	50                   	push   %eax
5f585c0f:	e8 5c 0a 00 00       	call   5f586670 <_wsprintfW>
5f585c14:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
5f585c1a:	89 04 24             	mov    %eax,(%esp)
5f585c1d:	e8 be 0b 00 00       	call   5f5867e0 <_lstrlenW@4>
5f585c22:	8b 9d 30 ff ff ff    	mov    0xffffff30(%ebp),%ebx
5f585c28:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
5f585c2c:	89 04 24             	mov    %eax,(%esp)
5f585c2f:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
5f585c35:	50                   	push   %eax
5f585c36:	6a 01                	push   $0x1
5f585c38:	6a 00                	push   $0x0
5f585c3a:	6a 00                	push   $0x0
5f585c3c:	53                   	push   %ebx
5f585c3d:	e8 6e 0a 00 00       	call   5f5866b0 <_RegSetValueExW@24>
5f585c42:	8b 95 30 ff ff ff    	mov    0xffffff30(%ebp),%edx
5f585c48:	89 c6                	mov    %eax,%esi
5f585c4a:	51                   	push   %ecx
5f585c4b:	52                   	push   %edx
5f585c4c:	e8 4f 0a 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585c51:	83 c4 0c             	add    $0xc,%esp
5f585c54:	85 f6                	test   %esi,%esi
5f585c56:	75 18                	jne    5f585c70 <_DINPUT_DllRegisterServer@0+0x270>
5f585c58:	8b 57 10             	mov    0x10(%edi),%edx
5f585c5b:	85 d2                	test   %edx,%edx
5f585c5d:	0f 85 48 02 00 00    	jne    5f585eab <_DINPUT_DllRegisterServer@0+0x4ab>
5f585c63:	8b 57 14             	mov    0x14(%edi),%edx
5f585c66:	85 d2                	test   %edx,%edx
5f585c68:	0f 85 67 02 00 00    	jne    5f585ed5 <_DINPUT_DllRegisterServer@0+0x4d5>
5f585c6e:	89 f6                	mov    %esi,%esi
5f585c70:	83 ec 0c             	sub    $0xc,%esp
5f585c73:	8b 85 34 ff ff ff    	mov    0xffffff34(%ebp),%eax
5f585c79:	83 c7 18             	add    $0x18,%edi
5f585c7c:	50                   	push   %eax
5f585c7d:	e8 1e 0a 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585c82:	83 c4 0c             	add    $0xc,%esp
5f585c85:	85 f6                	test   %esi,%esi
5f585c87:	75 0a                	jne    5f585c93 <_DINPUT_DllRegisterServer@0+0x293>
5f585c89:	8b 07                	mov    (%edi),%eax
5f585c8b:	85 c0                	test   %eax,%eax
5f585c8d:	0f 85 cd fe ff ff    	jne    5f585b60 <_DINPUT_DllRegisterServer@0+0x160>
5f585c93:	83 ec 0c             	sub    $0xc,%esp
5f585c96:	8b 85 38 ff ff ff    	mov    0xffffff38(%ebp),%eax
5f585c9c:	50                   	push   %eax
5f585c9d:	e8 fe 09 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585ca2:	31 c0                	xor    %eax,%eax
5f585ca4:	83 c4 0c             	add    $0xc,%esp
5f585ca7:	85 f6                	test   %esi,%esi
5f585ca9:	74 0c                	je     5f585cb7 <_DINPUT_DllRegisterServer@0+0x2b7>
5f585cab:	89 f0                	mov    %esi,%eax
5f585cad:	25 ff ff 00 00       	and    $0xffff,%eax
5f585cb2:	0d 00 00 07 80       	or     $0x80070000,%eax
5f585cb7:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f585cba:	5b                   	pop    %ebx
5f585cbb:	5e                   	pop    %esi
5f585cbc:	5f                   	pop    %edi
5f585cbd:	5d                   	pop    %ebp
5f585cbe:	c3                   	ret    
5f585cbf:	90                   	nop    
5f585cc0:	83 ec 0c             	sub    $0xc,%esp
5f585cc3:	53                   	push   %ebx
5f585cc4:	e8 b7 18 00 00       	call   5f587580 <_strlen>
5f585cc9:	5e                   	pop    %esi
5f585cca:	40                   	inc    %eax
5f585ccb:	5a                   	pop    %edx
5f585ccc:	50                   	push   %eax
5f585ccd:	53                   	push   %ebx
5f585cce:	8b 9d 40 ff ff ff    	mov    0xffffff40(%ebp),%ebx
5f585cd4:	6a 01                	push   $0x1
5f585cd6:	6a 00                	push   $0x0
5f585cd8:	6a 00                	push   $0x0
5f585cda:	53                   	push   %ebx
5f585cdb:	e8 b0 09 00 00       	call   5f586690 <_RegSetValueExA@24>
5f585ce0:	5a                   	pop    %edx
5f585ce1:	89 c6                	mov    %eax,%esi
5f585ce3:	59                   	pop    %ecx
5f585ce4:	85 c0                	test   %eax,%eax
5f585ce6:	0f 85 db fd ff ff    	jne    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585cec:	8b 57 08             	mov    0x8(%edi),%edx
5f585cef:	85 d2                	test   %edx,%edx
5f585cf1:	0f 84 af fd ff ff    	je     5f585aa6 <_DINPUT_DllRegisterServer@0+0xa6>
5f585cf7:	83 ec 0c             	sub    $0xc,%esp
5f585cfa:	8b 85 40 ff ff ff    	mov    0xffffff40(%ebp),%eax
5f585d00:	52                   	push   %edx
5f585d01:	ba 7e b4 58 5f       	mov    $0x5f58b47e,%edx
5f585d06:	e8 85 f9 ff ff       	call   5f585690 <_register_key_defvalueA>
5f585d0b:	83 c4 10             	add    $0x10,%esp
5f585d0e:	89 c6                	mov    %eax,%esi
5f585d10:	85 c0                	test   %eax,%eax
5f585d12:	0f 85 af fd ff ff    	jne    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585d18:	8b 47 0c             	mov    0xc(%edi),%eax
5f585d1b:	85 c0                	test   %eax,%eax
5f585d1d:	0f 84 8e fd ff ff    	je     5f585ab1 <_DINPUT_DllRegisterServer@0+0xb1>
5f585d23:	83 ec 0c             	sub    $0xc,%esp
5f585d26:	8d 85 3c ff ff ff    	lea    0xffffff3c(%ebp),%eax
5f585d2c:	6a 00                	push   $0x0
5f585d2e:	50                   	push   %eax
5f585d2f:	8b 85 40 ff ff ff    	mov    0xffffff40(%ebp),%eax
5f585d35:	6a 00                	push   $0x0
5f585d37:	68 1f 00 02 00       	push   $0x2001f
5f585d3c:	6a 00                	push   $0x0
5f585d3e:	6a 00                	push   $0x0
5f585d40:	6a 00                	push   $0x0
5f585d42:	68 60 b4 58 5f       	push   $0x5f58b460
5f585d47:	50                   	push   %eax
5f585d48:	e8 33 09 00 00       	call   5f586680 <_RegCreateKeyExW@36>
5f585d4d:	83 c4 0c             	add    $0xc,%esp
5f585d50:	89 c6                	mov    %eax,%esi
5f585d52:	85 c0                	test   %eax,%eax
5f585d54:	0f 85 6d fd ff ff    	jne    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585d5a:	83 ec 0c             	sub    $0xc,%esp
5f585d5d:	8b 47 0c             	mov    0xc(%edi),%eax
5f585d60:	50                   	push   %eax
5f585d61:	e8 6a 0a 00 00       	call   5f5867d0 <_lstrlenA@4>
5f585d66:	40                   	inc    %eax
5f585d67:	8b b5 3c ff ff ff    	mov    0xffffff3c(%ebp),%esi
5f585d6d:	89 04 24             	mov    %eax,(%esp)
5f585d70:	8b 47 0c             	mov    0xc(%edi),%eax
5f585d73:	50                   	push   %eax
5f585d74:	6a 01                	push   $0x1
5f585d76:	6a 00                	push   $0x0
5f585d78:	6a 00                	push   $0x0
5f585d7a:	56                   	push   %esi
5f585d7b:	e8 10 09 00 00       	call   5f586690 <_RegSetValueExA@24>
5f585d80:	59                   	pop    %ecx
5f585d81:	89 c6                	mov    %eax,%esi
5f585d83:	5b                   	pop    %ebx
5f585d84:	85 c0                	test   %eax,%eax
5f585d86:	75 0b                	jne    5f585d93 <_DINPUT_DllRegisterServer@0+0x393>
5f585d88:	8b 5f 10             	mov    0x10(%edi),%ebx
5f585d8b:	85 db                	test   %ebx,%ebx
5f585d8d:	0f 85 5e 01 00 00    	jne    5f585ef1 <_DINPUT_DllRegisterServer@0+0x4f1>
5f585d93:	83 ec 0c             	sub    $0xc,%esp
5f585d96:	8b 85 3c ff ff ff    	mov    0xffffff3c(%ebp),%eax
5f585d9c:	50                   	push   %eax
5f585d9d:	e8 fe 08 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585da2:	83 c4 0c             	add    $0xc,%esp
5f585da5:	85 f6                	test   %esi,%esi
5f585da7:	0f 85 1a fd ff ff    	jne    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585dad:	8b 57 14             	mov    0x14(%edi),%edx
5f585db0:	85 d2                	test   %edx,%edx
5f585db2:	0f 84 04 fd ff ff    	je     5f585abc <_DINPUT_DllRegisterServer@0+0xbc>
5f585db8:	83 ec 0c             	sub    $0xc,%esp
5f585dbb:	8b 85 40 ff ff ff    	mov    0xffffff40(%ebp),%eax
5f585dc1:	52                   	push   %edx
5f585dc2:	ba 42 b4 58 5f       	mov    $0x5f58b442,%edx
5f585dc7:	e8 c4 f8 ff ff       	call   5f585690 <_register_key_defvalueA>
5f585dcc:	83 c4 10             	add    $0x10,%esp
5f585dcf:	89 c6                	mov    %eax,%esi
5f585dd1:	85 c0                	test   %eax,%eax
5f585dd3:	0f 85 ee fc ff ff    	jne    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585dd9:	50                   	push   %eax
5f585dda:	8b 47 1c             	mov    0x1c(%edi),%eax
5f585ddd:	8b 57 14             	mov    0x14(%edi),%edx
5f585de0:	50                   	push   %eax
5f585de1:	8b 47 04             	mov    0x4(%edi),%eax
5f585de4:	50                   	push   %eax
5f585de5:	8d 45 98             	lea    0xffffff98(%ebp),%eax
5f585de8:	6a 00                	push   $0x0
5f585dea:	e8 b1 f9 ff ff       	call   5f5857a0 <_register_progid>
5f585def:	83 c4 10             	add    $0x10,%esp
5f585df2:	89 c6                	mov    %eax,%esi
5f585df4:	85 c0                	test   %eax,%eax
5f585df6:	0f 85 cb fc ff ff    	jne    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585dfc:	8b 57 18             	mov    0x18(%edi),%edx
5f585dff:	85 d2                	test   %edx,%edx
5f585e01:	0f 84 c0 fc ff ff    	je     5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585e07:	83 ec 0c             	sub    $0xc,%esp
5f585e0a:	8b 85 40 ff ff ff    	mov    0xffffff40(%ebp),%eax
5f585e10:	52                   	push   %edx
5f585e11:	ba 10 b4 58 5f       	mov    $0x5f58b410,%edx
5f585e16:	e8 75 f8 ff ff       	call   5f585690 <_register_key_defvalueA>
5f585e1b:	83 c4 10             	add    $0x10,%esp
5f585e1e:	89 c6                	mov    %eax,%esi
5f585e20:	85 c0                	test   %eax,%eax
5f585e22:	0f 85 9f fc ff ff    	jne    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585e28:	56                   	push   %esi
5f585e29:	8b 5f 1c             	mov    0x1c(%edi),%ebx
5f585e2c:	8b 57 18             	mov    0x18(%edi),%edx
5f585e2f:	53                   	push   %ebx
5f585e30:	8b 4f 04             	mov    0x4(%edi),%ecx
5f585e33:	51                   	push   %ecx
5f585e34:	8b 47 14             	mov    0x14(%edi),%eax
5f585e37:	50                   	push   %eax
5f585e38:	8d 45 98             	lea    0xffffff98(%ebp),%eax
5f585e3b:	e8 60 f9 ff ff       	call   5f5857a0 <_register_progid>
5f585e40:	83 c4 10             	add    $0x10,%esp
5f585e43:	89 c6                	mov    %eax,%esi
5f585e45:	e9 7d fc ff ff       	jmp    5f585ac7 <_DINPUT_DllRegisterServer@0+0xc7>
5f585e4a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f585e50:	83 ec 0c             	sub    $0xc,%esp
5f585e53:	53                   	push   %ebx
5f585e54:	e8 27 17 00 00       	call   5f587580 <_strlen>
5f585e59:	5e                   	pop    %esi
5f585e5a:	40                   	inc    %eax
5f585e5b:	5a                   	pop    %edx
5f585e5c:	50                   	push   %eax
5f585e5d:	53                   	push   %ebx
5f585e5e:	8b 9d 34 ff ff ff    	mov    0xffffff34(%ebp),%ebx
5f585e64:	6a 01                	push   $0x1
5f585e66:	6a 00                	push   $0x0
5f585e68:	6a 00                	push   $0x0
5f585e6a:	53                   	push   %ebx
5f585e6b:	e8 20 08 00 00       	call   5f586690 <_RegSetValueExA@24>
5f585e70:	5a                   	pop    %edx
5f585e71:	89 c6                	mov    %eax,%esi
5f585e73:	59                   	pop    %ecx
5f585e74:	85 c0                	test   %eax,%eax
5f585e76:	0f 85 f4 fd ff ff    	jne    5f585c70 <_DINPUT_DllRegisterServer@0+0x270>
5f585e7c:	8b 57 08             	mov    0x8(%edi),%edx
5f585e7f:	85 d2                	test   %edx,%edx
5f585e81:	0f 84 39 fd ff ff    	je     5f585bc0 <_DINPUT_DllRegisterServer@0+0x1c0>
5f585e87:	83 ec 0c             	sub    $0xc,%esp
5f585e8a:	8b 85 34 ff ff ff    	mov    0xffffff34(%ebp),%eax
5f585e90:	52                   	push   %edx
5f585e91:	ba 06 b5 58 5f       	mov    $0x5f58b506,%edx
5f585e96:	e8 d5 f8 ff ff       	call   5f585770 <_register_key_guid>
5f585e9b:	83 c4 10             	add    $0x10,%esp
5f585e9e:	85 f6                	test   %esi,%esi
5f585ea0:	0f 84 1a fd ff ff    	je     5f585bc0 <_DINPUT_DllRegisterServer@0+0x1c0>
5f585ea6:	e9 c5 fd ff ff       	jmp    5f585c70 <_DINPUT_DllRegisterServer@0+0x270>
5f585eab:	83 ec 0c             	sub    $0xc,%esp
5f585eae:	8b 85 34 ff ff ff    	mov    0xffffff34(%ebp),%eax
5f585eb4:	52                   	push   %edx
5f585eb5:	ba d2 b4 58 5f       	mov    $0x5f58b4d2,%edx
5f585eba:	e8 b1 f8 ff ff       	call   5f585770 <_register_key_guid>
5f585ebf:	83 c4 10             	add    $0x10,%esp
5f585ec2:	85 f6                	test   %esi,%esi
5f585ec4:	0f 85 a6 fd ff ff    	jne    5f585c70 <_DINPUT_DllRegisterServer@0+0x270>
5f585eca:	8b 57 14             	mov    0x14(%edi),%edx
5f585ecd:	85 d2                	test   %edx,%edx
5f585ecf:	0f 84 9b fd ff ff    	je     5f585c70 <_DINPUT_DllRegisterServer@0+0x270>
5f585ed5:	83 ec 0c             	sub    $0xc,%esp
5f585ed8:	8b 85 34 ff ff ff    	mov    0xffffff34(%ebp),%eax
5f585ede:	52                   	push   %edx
5f585edf:	ba b0 b4 58 5f       	mov    $0x5f58b4b0,%edx
5f585ee4:	e8 87 f8 ff ff       	call   5f585770 <_register_key_guid>
5f585ee9:	83 c4 10             	add    $0x10,%esp
5f585eec:	e9 7f fd ff ff       	jmp    5f585c70 <_DINPUT_DllRegisterServer@0+0x270>
5f585ef1:	83 ec 0c             	sub    $0xc,%esp
5f585ef4:	53                   	push   %ebx
5f585ef5:	e8 86 16 00 00       	call   5f587580 <_strlen>
5f585efa:	5e                   	pop    %esi
5f585efb:	40                   	inc    %eax
5f585efc:	5a                   	pop    %edx
5f585efd:	50                   	push   %eax
5f585efe:	53                   	push   %ebx
5f585eff:	8b 9d 3c ff ff ff    	mov    0xffffff3c(%ebp),%ebx
5f585f05:	6a 01                	push   $0x1
5f585f07:	6a 00                	push   $0x0
5f585f09:	68 50 b4 58 5f       	push   $0x5f58b450
5f585f0e:	53                   	push   %ebx
5f585f0f:	e8 7c 07 00 00       	call   5f586690 <_RegSetValueExA@24>
5f585f14:	5a                   	pop    %edx
5f585f15:	89 c6                	mov    %eax,%esi
5f585f17:	59                   	pop    %ecx
5f585f18:	e9 76 fe ff ff       	jmp    5f585d93 <_DINPUT_DllRegisterServer@0+0x393>
5f585f1d:	8d 76 00             	lea    0x0(%esi),%esi

5f585f20 <_DINPUT_DllUnregisterServer@0>:
5f585f20:	55                   	push   %ebp
5f585f21:	89 e5                	mov    %esp,%ebp
5f585f23:	57                   	push   %edi
5f585f24:	56                   	push   %esi
5f585f25:	53                   	push   %ebx
5f585f26:	81 ec c8 00 00 00    	sub    $0xc8,%esp
5f585f2c:	8d 85 44 ff ff ff    	lea    0xffffff44(%ebp),%eax
5f585f32:	be 90 b3 58 5f       	mov    $0x5f58b390,%esi
5f585f37:	50                   	push   %eax
5f585f38:	68 1f 00 02 00       	push   $0x2001f
5f585f3d:	6a 00                	push   $0x0
5f585f3f:	68 f0 b3 58 5f       	push   $0x5f58b3f0
5f585f44:	68 00 00 00 80       	push   $0x80000000
5f585f49:	e8 92 07 00 00       	call   5f5866e0 <_RegOpenKeyExW@20>
5f585f4e:	89 c3                	mov    %eax,%ebx
5f585f50:	83 c4 0c             	add    $0xc,%esp
5f585f53:	31 c0                	xor    %eax,%eax
5f585f55:	83 fb 02             	cmp    $0x2,%ebx
5f585f58:	0f 84 82 00 00 00    	je     5f585fe0 <_DINPUT_DllUnregisterServer@0+0xc0>
5f585f5e:	85 db                	test   %ebx,%ebx
5f585f60:	75 76                	jne    5f585fd8 <_DINPUT_DllUnregisterServer@0+0xb8>
5f585f62:	a1 90 b3 58 5f       	mov    0x5f58b390,%eax
5f585f67:	85 c0                	test   %eax,%eax
5f585f69:	74 55                	je     5f585fc0 <_DINPUT_DllUnregisterServer@0+0xa0>
5f585f6b:	8d 7d 98             	lea    0xffffff98(%ebp),%edi
5f585f6e:	eb 18                	jmp    5f585f88 <_DINPUT_DllUnregisterServer@0+0x68>
5f585f70:	8b 56 18             	mov    0x18(%esi),%edx
5f585f73:	85 d2                	test   %edx,%edx
5f585f75:	0f 85 0d 01 00 00    	jne    5f586088 <_DINPUT_DllUnregisterServer@0+0x168>
5f585f7b:	83 c6 20             	add    $0x20,%esi
5f585f7e:	85 db                	test   %ebx,%ebx
5f585f80:	75 3e                	jne    5f585fc0 <_DINPUT_DllUnregisterServer@0+0xa0>
5f585f82:	8b 06                	mov    (%esi),%eax
5f585f84:	85 c0                	test   %eax,%eax
5f585f86:	74 38                	je     5f585fc0 <_DINPUT_DllUnregisterServer@0+0xa0>
5f585f88:	50                   	push   %eax
5f585f89:	6a 27                	push   $0x27
5f585f8b:	57                   	push   %edi
5f585f8c:	8b 06                	mov    (%esi),%eax
5f585f8e:	50                   	push   %eax
5f585f8f:	e8 1c 06 00 00       	call   5f5865b0 <_StringFromGUID2@12>
5f585f94:	89 fa                	mov    %edi,%edx
5f585f96:	58                   	pop    %eax
5f585f97:	8b 85 44 ff ff ff    	mov    0xffffff44(%ebp),%eax
5f585f9d:	e8 be f9 ff ff       	call   5f585960 <_recursive_delete_keyW>
5f585fa2:	89 c3                	mov    %eax,%ebx
5f585fa4:	85 c0                	test   %eax,%eax
5f585fa6:	75 18                	jne    5f585fc0 <_DINPUT_DllUnregisterServer@0+0xa0>
5f585fa8:	8b 56 14             	mov    0x14(%esi),%edx
5f585fab:	85 d2                	test   %edx,%edx
5f585fad:	74 c1                	je     5f585f70 <_DINPUT_DllUnregisterServer@0+0x50>
5f585faf:	b8 00 00 00 80       	mov    $0x80000000,%eax
5f585fb4:	e8 f7 f9 ff ff       	call   5f5859b0 <_recursive_delete_keyA>
5f585fb9:	89 c3                	mov    %eax,%ebx
5f585fbb:	85 c0                	test   %eax,%eax
5f585fbd:	74 b1                	je     5f585f70 <_DINPUT_DllUnregisterServer@0+0x50>
5f585fbf:	90                   	nop    
5f585fc0:	83 ec 0c             	sub    $0xc,%esp
5f585fc3:	8b b5 44 ff ff ff    	mov    0xffffff44(%ebp),%esi
5f585fc9:	56                   	push   %esi
5f585fca:	e8 d1 06 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f585fcf:	31 c0                	xor    %eax,%eax
5f585fd1:	83 c4 0c             	add    $0xc,%esp
5f585fd4:	85 db                	test   %ebx,%ebx
5f585fd6:	74 08                	je     5f585fe0 <_DINPUT_DllUnregisterServer@0+0xc0>
5f585fd8:	0f b7 c3             	movzwl %bx,%eax
5f585fdb:	0d 00 00 07 80       	or     $0x80070000,%eax
5f585fe0:	85 c0                	test   %eax,%eax
5f585fe2:	0f 88 98 00 00 00    	js     5f586080 <_DINPUT_DllUnregisterServer@0+0x160>
5f585fe8:	83 ec 0c             	sub    $0xc,%esp
5f585feb:	8d 85 40 ff ff ff    	lea    0xffffff40(%ebp),%eax
5f585ff1:	be 30 b3 58 5f       	mov    $0x5f58b330,%esi
5f585ff6:	50                   	push   %eax
5f585ff7:	68 1f 00 02 00       	push   $0x2001f
5f585ffc:	6a 00                	push   $0x0
5f585ffe:	68 fc b3 58 5f       	push   $0x5f58b3fc
5f586003:	68 00 00 00 80       	push   $0x80000000
5f586008:	e8 d3 06 00 00       	call   5f5866e0 <_RegOpenKeyExW@20>
5f58600d:	89 c3                	mov    %eax,%ebx
5f58600f:	83 c4 0c             	add    $0xc,%esp
5f586012:	31 c0                	xor    %eax,%eax
5f586014:	83 fb 02             	cmp    $0x2,%ebx
5f586017:	74 67                	je     5f586080 <_DINPUT_DllUnregisterServer@0+0x160>
5f586019:	85 db                	test   %ebx,%ebx
5f58601b:	75 54                	jne    5f586071 <_DINPUT_DllUnregisterServer@0+0x151>
5f58601d:	8b 0d 30 b3 58 5f    	mov    0x5f58b330,%ecx
5f586023:	85 c9                	test   %ecx,%ecx
5f586025:	74 32                	je     5f586059 <_DINPUT_DllUnregisterServer@0+0x139>
5f586027:	8d bd 48 ff ff ff    	lea    0xffffff48(%ebp),%edi
5f58602d:	8d 76 00             	lea    0x0(%esi),%esi
5f586030:	52                   	push   %edx
5f586031:	6a 27                	push   $0x27
5f586033:	57                   	push   %edi
5f586034:	8b 06                	mov    (%esi),%eax
5f586036:	83 c6 18             	add    $0x18,%esi
5f586039:	50                   	push   %eax
5f58603a:	e8 71 05 00 00       	call   5f5865b0 <_StringFromGUID2@12>
5f58603f:	89 fa                	mov    %edi,%edx
5f586041:	58                   	pop    %eax
5f586042:	8b 85 40 ff ff ff    	mov    0xffffff40(%ebp),%eax
5f586048:	e8 13 f9 ff ff       	call   5f585960 <_recursive_delete_keyW>
5f58604d:	89 c3                	mov    %eax,%ebx
5f58604f:	85 c0                	test   %eax,%eax
5f586051:	75 06                	jne    5f586059 <_DINPUT_DllUnregisterServer@0+0x139>
5f586053:	8b 06                	mov    (%esi),%eax
5f586055:	85 c0                	test   %eax,%eax
5f586057:	75 d7                	jne    5f586030 <_DINPUT_DllUnregisterServer@0+0x110>
5f586059:	83 ec 0c             	sub    $0xc,%esp
5f58605c:	8b 85 40 ff ff ff    	mov    0xffffff40(%ebp),%eax
5f586062:	50                   	push   %eax
5f586063:	e8 38 06 00 00       	call   5f5866a0 <_RegCloseKey@4>
5f586068:	31 c0                	xor    %eax,%eax
5f58606a:	83 c4 0c             	add    $0xc,%esp
5f58606d:	85 db                	test   %ebx,%ebx
5f58606f:	74 0f                	je     5f586080 <_DINPUT_DllUnregisterServer@0+0x160>
5f586071:	0f b7 c3             	movzwl %bx,%eax
5f586074:	0d 00 00 07 80       	or     $0x80070000,%eax
5f586079:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f586080:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f586083:	5b                   	pop    %ebx
5f586084:	5e                   	pop    %esi
5f586085:	5f                   	pop    %edi
5f586086:	5d                   	pop    %ebp
5f586087:	c3                   	ret    
5f586088:	b8 00 00 00 80       	mov    $0x80000000,%eax
5f58608d:	e8 1e f9 ff ff       	call   5f5859b0 <_recursive_delete_keyA>
5f586092:	89 c3                	mov    %eax,%ebx
5f586094:	85 c0                	test   %eax,%eax
5f586096:	0f 84 df fe ff ff    	je     5f585f7b <_DINPUT_DllUnregisterServer@0+0x5b>
5f58609c:	e9 1f ff ff ff       	jmp    5f585fc0 <_DINPUT_DllUnregisterServer@0+0xa0>
5f5860a1:	90                   	nop    
5f5860a2:	90                   	nop    
5f5860a3:	90                   	nop    
5f5860a4:	90                   	nop    
5f5860a5:	90                   	nop    
5f5860a6:	90                   	nop    
5f5860a7:	90                   	nop    
5f5860a8:	90                   	nop    
5f5860a9:	90                   	nop    
5f5860aa:	90                   	nop    
5f5860ab:	90                   	nop    
5f5860ac:	90                   	nop    
5f5860ad:	90                   	nop    
5f5860ae:	90                   	nop    
5f5860af:	90                   	nop    

5f5860b0 <_gimme1>:
5f5860b0:	55                   	push   %ebp
5f5860b1:	89 e5                	mov    %esp,%ebp
5f5860b3:	56                   	push   %esi
5f5860b4:	89 c6                	mov    %eax,%esi
5f5860b6:	53                   	push   %ebx
5f5860b7:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
5f5860bd:	8b 90 b8 0f 00 00    	mov    0xfb8(%eax),%edx
5f5860c3:	85 d2                	test   %edx,%edx
5f5860c5:	74 29                	je     5f5860f0 <_gimme1+0x40>
5f5860c7:	89 d3                	mov    %edx,%ebx
5f5860c9:	8b 0b                	mov    (%ebx),%ecx
5f5860cb:	8d 83 08 04 00 00    	lea    0x408(%ebx),%eax
5f5860d1:	8d 14 31             	lea    (%ecx,%esi,1),%edx
5f5860d4:	39 c2                	cmp    %eax,%edx
5f5860d6:	72 06                	jb     5f5860de <_gimme1+0x2e>
5f5860d8:	8d 4b 08             	lea    0x8(%ebx),%ecx
5f5860db:	8d 14 31             	lea    (%ecx,%esi,1),%edx
5f5860de:	89 13                	mov    %edx,(%ebx)
5f5860e0:	89 c8                	mov    %ecx,%eax
5f5860e2:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5860e5:	5b                   	pop    %ebx
5f5860e6:	5e                   	pop    %esi
5f5860e7:	5d                   	pop    %ebp
5f5860e8:	c3                   	ret    
5f5860e9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5860f0:	a1 20 e2 58 5f       	mov    0x5f58e220,%eax
5f5860f5:	85 c0                	test   %eax,%eax
5f5860f7:	75 14                	jne    5f58610d <_gimme1+0x5d>
5f5860f9:	c7 05 20 e2 58 5f 28 	movl   $0x5f58e228,0x5f58e220
5f586100:	e2 58 5f 
5f586103:	c7 05 24 e2 58 5f 28 	movl   $0x5f58e628,0x5f58e224
5f58610a:	e6 58 5f 
5f58610d:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
5f586113:	8b 40 18             	mov    0x18(%eax),%eax
5f586116:	bb 20 e2 58 5f       	mov    $0x5f58e220,%ebx
5f58611b:	85 c0                	test   %eax,%eax
5f58611d:	74 aa                	je     5f5860c9 <_gimme1+0x19>
5f58611f:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
5f586125:	89 98 b8 0f 00 00    	mov    %ebx,0xfb8(%eax)
5f58612b:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
5f586131:	53                   	push   %ebx
5f586132:	68 08 08 00 00       	push   $0x808
5f586137:	6a 00                	push   $0x0
5f586139:	8b 48 18             	mov    0x18(%eax),%ecx
5f58613c:	51                   	push   %ecx
5f58613d:	e8 4e 14 00 00       	call   5f587590 <_RtlAllocateHeap@12>
5f586142:	5a                   	pop    %edx
5f586143:	89 c2                	mov    %eax,%edx
5f586145:	8d 40 08             	lea    0x8(%eax),%eax
5f586148:	89 02                	mov    %eax,(%edx)
5f58614a:	8d 82 08 04 00 00    	lea    0x408(%edx),%eax
5f586150:	89 42 04             	mov    %eax,0x4(%edx)
5f586153:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
5f586159:	89 90 b8 0f 00 00    	mov    %edx,0xfb8(%eax)
5f58615f:	e9 63 ff ff ff       	jmp    5f5860c7 <_gimme1+0x17>
5f586164:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58616a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f586170 <_wine_dbgstr_guid>:
5f586170:	55                   	push   %ebp
5f586171:	b8 30 b5 58 5f       	mov    $0x5f58b530,%eax
5f586176:	89 e5                	mov    %esp,%ebp
5f586178:	56                   	push   %esi
5f586179:	53                   	push   %ebx
5f58617a:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f58617d:	85 db                	test   %ebx,%ebx
5f58617f:	74 2f                	je     5f5861b0 <_wine_dbgstr_guid+0x40>
5f586181:	89 d8                	mov    %ebx,%eax
5f586183:	c1 e8 10             	shr    $0x10,%eax
5f586186:	66 85 c0             	test   %ax,%ax
5f586189:	75 2c                	jne    5f5861b7 <_wine_dbgstr_guid+0x47>
5f58618b:	b8 0c 00 00 00       	mov    $0xc,%eax
5f586190:	e8 1b ff ff ff       	call   5f5860b0 <_gimme1>
5f586195:	89 c6                	mov    %eax,%esi
5f586197:	50                   	push   %eax
5f586198:	89 d8                	mov    %ebx,%eax
5f58619a:	25 ff ff 00 00       	and    $0xffff,%eax
5f58619f:	50                   	push   %eax
5f5861a0:	68 37 b5 58 5f       	push   $0x5f58b537
5f5861a5:	56                   	push   %esi
5f5861a6:	e8 f5 13 00 00       	call   5f5875a0 <_sprintf>
5f5861ab:	83 c4 10             	add    $0x10,%esp
5f5861ae:	89 f0                	mov    %esi,%eax
5f5861b0:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f5861b3:	5b                   	pop    %ebx
5f5861b4:	5e                   	pop    %esi
5f5861b5:	5d                   	pop    %ebp
5f5861b6:	c3                   	ret    
5f5861b7:	b8 28 00 00 00       	mov    $0x28,%eax
5f5861bc:	e8 ef fe ff ff       	call   5f5860b0 <_gimme1>
5f5861c1:	83 ec 0c             	sub    $0xc,%esp
5f5861c4:	89 c6                	mov    %eax,%esi
5f5861c6:	31 c0                	xor    %eax,%eax
5f5861c8:	8a 43 0f             	mov    0xf(%ebx),%al
5f5861cb:	50                   	push   %eax
5f5861cc:	31 c0                	xor    %eax,%eax
5f5861ce:	8a 43 0e             	mov    0xe(%ebx),%al
5f5861d1:	50                   	push   %eax
5f5861d2:	31 c0                	xor    %eax,%eax
5f5861d4:	8a 43 0d             	mov    0xd(%ebx),%al
5f5861d7:	50                   	push   %eax
5f5861d8:	31 c0                	xor    %eax,%eax
5f5861da:	8a 43 0c             	mov    0xc(%ebx),%al
5f5861dd:	50                   	push   %eax
5f5861de:	31 c0                	xor    %eax,%eax
5f5861e0:	8a 43 0b             	mov    0xb(%ebx),%al
5f5861e3:	50                   	push   %eax
5f5861e4:	31 c0                	xor    %eax,%eax
5f5861e6:	8a 43 0a             	mov    0xa(%ebx),%al
5f5861e9:	50                   	push   %eax
5f5861ea:	31 c0                	xor    %eax,%eax
5f5861ec:	8a 43 09             	mov    0x9(%ebx),%al
5f5861ef:	50                   	push   %eax
5f5861f0:	31 c0                	xor    %eax,%eax
5f5861f2:	8a 43 08             	mov    0x8(%ebx),%al
5f5861f5:	50                   	push   %eax
5f5861f6:	66 8b 43 06          	mov    0x6(%ebx),%ax
5f5861fa:	25 ff ff 00 00       	and    $0xffff,%eax
5f5861ff:	50                   	push   %eax
5f586200:	66 8b 43 04          	mov    0x4(%ebx),%ax
5f586204:	25 ff ff 00 00       	and    $0xffff,%eax
5f586209:	50                   	push   %eax
5f58620a:	8b 03                	mov    (%ebx),%eax
5f58620c:	50                   	push   %eax
5f58620d:	68 48 b5 58 5f       	push   $0x5f58b548
5f586212:	56                   	push   %esi
5f586213:	e8 88 13 00 00       	call   5f5875a0 <_sprintf>
5f586218:	83 c4 40             	add    $0x40,%esp
5f58621b:	eb 91                	jmp    5f5861ae <_wine_dbgstr_guid+0x3e>
5f58621d:	8d 76 00             	lea    0x0(%esi),%esi

5f586220 <_wine_dbgstr_wn>:
5f586220:	55                   	push   %ebp
5f586221:	89 e5                	mov    %esp,%ebp
5f586223:	57                   	push   %edi
5f586224:	56                   	push   %esi
5f586225:	53                   	push   %ebx
5f586226:	83 ec 0c             	sub    $0xc,%esp
5f586229:	8b 45 08             	mov    0x8(%ebp),%eax
5f58622c:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f58622f:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f586232:	66 83 7d 0a 00       	cmpw   $0x0,0xa(%ebp)
5f586237:	75 3c                	jne    5f586275 <_wine_dbgstr_wn+0x55>
5f586239:	8b 5d f0             	mov    0xfffffff0(%ebp),%ebx
5f58623c:	b8 30 b5 58 5f       	mov    $0x5f58b530,%eax
5f586241:	85 db                	test   %ebx,%ebx
5f586243:	74 28                	je     5f58626d <_wine_dbgstr_wn+0x4d>
5f586245:	b8 06 00 00 00       	mov    $0x6,%eax
5f58624a:	e8 61 fe ff ff       	call   5f5860b0 <_gimme1>
5f58624f:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
5f586252:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f586255:	25 ff ff 00 00       	and    $0xffff,%eax
5f58625a:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
5f58625d:	51                   	push   %ecx
5f58625e:	50                   	push   %eax
5f58625f:	68 7c b5 58 5f       	push   $0x5f58b57c
5f586264:	52                   	push   %edx
5f586265:	e8 36 13 00 00       	call   5f5875a0 <_sprintf>
5f58626a:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
5f58626d:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f586270:	5b                   	pop    %ebx
5f586271:	5e                   	pop    %esi
5f586272:	5f                   	pop    %edi
5f586273:	5d                   	pop    %ebp
5f586274:	c3                   	ret    
5f586275:	85 ff                	test   %edi,%edi
5f586277:	0f 88 ad 00 00 00    	js     5f58632a <_wine_dbgstr_wn+0x10a>
5f58627d:	81 ff c8 00 00 00    	cmp    $0xc8,%edi
5f586283:	0f 8f 97 00 00 00    	jg     5f586320 <_wine_dbgstr_wn+0x100>
5f586289:	8d 44 bf 07          	lea    0x7(%edi,%edi,4),%eax
5f58628d:	89 fb                	mov    %edi,%ebx
5f58628f:	e8 1c fe ff ff       	call   5f5860b0 <_gimme1>
5f586294:	4f                   	dec    %edi
5f586295:	89 c6                	mov    %eax,%esi
5f586297:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
5f58629a:	83 c6 02             	add    $0x2,%esi
5f58629d:	c6 00 4c             	movb   $0x4c,(%eax)
5f5862a0:	c6 40 01 22          	movb   $0x22,0x1(%eax)
5f5862a4:	85 db                	test   %ebx,%ebx
5f5862a6:	7e 48                	jle    5f5862f0 <_wine_dbgstr_wn+0xd0>
5f5862a8:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f5862ab:	66 8b 10             	mov    (%eax),%dx
5f5862ae:	66 85 d2             	test   %dx,%dx
5f5862b1:	74 3d                	je     5f5862f0 <_wine_dbgstr_wn+0xd0>
5f5862b3:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f5862b6:	83 c0 02             	add    $0x2,%eax
5f5862b9:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f5862bc:	89 d0                	mov    %edx,%eax
5f5862be:	25 ff ff 00 00       	and    $0xffff,%eax
5f5862c3:	83 f8 0d             	cmp    $0xd,%eax
5f5862c6:	74 7d                	je     5f586345 <_wine_dbgstr_wn+0x125>
5f5862c8:	7f 67                	jg     5f586331 <_wine_dbgstr_wn+0x111>
5f5862ca:	83 f8 09             	cmp    $0x9,%eax
5f5862cd:	0f 84 b2 00 00 00    	je     5f586385 <_wine_dbgstr_wn+0x165>
5f5862d3:	83 f8 0a             	cmp    $0xa,%eax
5f5862d6:	0f 84 b6 00 00 00    	je     5f586392 <_wine_dbgstr_wn+0x172>
5f5862dc:	8d 42 e0             	lea    0xffffffe0(%edx),%eax
5f5862df:	66 83 f8 5e          	cmp    $0x5e,%ax
5f5862e3:	77 6b                	ja     5f586350 <_wine_dbgstr_wn+0x130>
5f5862e5:	88 16                	mov    %dl,(%esi)
5f5862e7:	46                   	inc    %esi
5f5862e8:	89 f8                	mov    %edi,%eax
5f5862ea:	4f                   	dec    %edi
5f5862eb:	85 c0                	test   %eax,%eax
5f5862ed:	7f b9                	jg     5f5862a8 <_wine_dbgstr_wn+0x88>
5f5862ef:	90                   	nop    
5f5862f0:	c6 06 22             	movb   $0x22,(%esi)
5f5862f3:	46                   	inc    %esi
5f5862f4:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f5862f7:	66 83 38 00          	cmpw   $0x0,(%eax)
5f5862fb:	74 0c                	je     5f586309 <_wine_dbgstr_wn+0xe9>
5f5862fd:	c6 06 2e             	movb   $0x2e,(%esi)
5f586300:	46                   	inc    %esi
5f586301:	c6 06 2e             	movb   $0x2e,(%esi)
5f586304:	46                   	inc    %esi
5f586305:	c6 06 2e             	movb   $0x2e,(%esi)
5f586308:	46                   	inc    %esi
5f586309:	c6 06 00             	movb   $0x0,(%esi)
5f58630c:	46                   	inc    %esi
 struct _TEB * pTeb;

#if defined(__GNUC__)
 /* FIXME: instead of hardcoded offsets, use offsetof() - if possible */
 __asm__ __volatile__
5f58630d:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
5f586313:	8b 80 b8 0f 00 00    	mov    0xfb8(%eax),%eax
5f586319:	89 30                	mov    %esi,(%eax)
5f58631b:	e9 4a ff ff ff       	jmp    5f58626a <_wine_dbgstr_wn+0x4a>
5f586320:	bf c8 00 00 00       	mov    $0xc8,%edi
5f586325:	e9 5f ff ff ff       	jmp    5f586289 <_wine_dbgstr_wn+0x69>
5f58632a:	31 ff                	xor    %edi,%edi
5f58632c:	e9 58 ff ff ff       	jmp    5f586289 <_wine_dbgstr_wn+0x69>
5f586331:	83 f8 22             	cmp    $0x22,%eax
5f586334:	74 42                	je     5f586378 <_wine_dbgstr_wn+0x158>
5f586336:	83 f8 5c             	cmp    $0x5c,%eax
5f586339:	75 a1                	jne    5f5862dc <_wine_dbgstr_wn+0xbc>
5f58633b:	c6 06 5c             	movb   $0x5c,(%esi)
5f58633e:	46                   	inc    %esi
5f58633f:	c6 06 5c             	movb   $0x5c,(%esi)
5f586342:	46                   	inc    %esi
5f586343:	eb a3                	jmp    5f5862e8 <_wine_dbgstr_wn+0xc8>
5f586345:	c6 06 5c             	movb   $0x5c,(%esi)
5f586348:	46                   	inc    %esi
5f586349:	c6 06 72             	movb   $0x72,(%esi)
5f58634c:	46                   	inc    %esi
5f58634d:	eb 99                	jmp    5f5862e8 <_wine_dbgstr_wn+0xc8>
5f58634f:	90                   	nop    
5f586350:	c6 06 5c             	movb   $0x5c,(%esi)
5f586353:	50                   	push   %eax
5f586354:	89 d0                	mov    %edx,%eax
5f586356:	46                   	inc    %esi
5f586357:	25 ff ff 00 00       	and    $0xffff,%eax
5f58635c:	50                   	push   %eax
5f58635d:	68 82 b5 58 5f       	push   $0x5f58b582
5f586362:	56                   	push   %esi
5f586363:	e8 38 12 00 00       	call   5f5875a0 <_sprintf>
5f586368:	89 f8                	mov    %edi,%eax
5f58636a:	83 c6 04             	add    $0x4,%esi
5f58636d:	83 c4 10             	add    $0x10,%esp
5f586370:	4f                   	dec    %edi
5f586371:	85 c0                	test   %eax,%eax
5f586373:	e9 75 ff ff ff       	jmp    5f5862ed <_wine_dbgstr_wn+0xcd>
5f586378:	c6 06 5c             	movb   $0x5c,(%esi)
5f58637b:	46                   	inc    %esi
5f58637c:	c6 06 22             	movb   $0x22,(%esi)
5f58637f:	46                   	inc    %esi
5f586380:	e9 63 ff ff ff       	jmp    5f5862e8 <_wine_dbgstr_wn+0xc8>
5f586385:	c6 06 5c             	movb   $0x5c,(%esi)
5f586388:	46                   	inc    %esi
5f586389:	c6 06 74             	movb   $0x74,(%esi)
5f58638c:	46                   	inc    %esi
5f58638d:	e9 56 ff ff ff       	jmp    5f5862e8 <_wine_dbgstr_wn+0xc8>
5f586392:	c6 06 5c             	movb   $0x5c,(%esi)
5f586395:	46                   	inc    %esi
5f586396:	c6 06 6e             	movb   $0x6e,(%esi)
5f586399:	46                   	inc    %esi
5f58639a:	e9 49 ff ff ff       	jmp    5f5862e8 <_wine_dbgstr_wn+0xc8>
5f58639f:	90                   	nop    

5f5863a0 <_wine_dbgstr_an>:
5f5863a0:	55                   	push   %ebp
5f5863a1:	89 e5                	mov    %esp,%ebp
5f5863a3:	57                   	push   %edi
5f5863a4:	56                   	push   %esi
5f5863a5:	53                   	push   %ebx
5f5863a6:	83 ec 0c             	sub    $0xc,%esp
5f5863a9:	8b 75 0c             	mov    0xc(%ebp),%esi
5f5863ac:	8b 7d 08             	mov    0x8(%ebp),%edi
5f5863af:	66 83 7d 0a 00       	cmpw   $0x0,0xa(%ebp)
5f5863b4:	75 3a                	jne    5f5863f0 <_wine_dbgstr_an+0x50>
5f5863b6:	b8 30 b5 58 5f       	mov    $0x5f58b530,%eax
5f5863bb:	85 ff                	test   %edi,%edi
5f5863bd:	74 27                	je     5f5863e6 <_wine_dbgstr_an+0x46>
5f5863bf:	b8 06 00 00 00       	mov    $0x6,%eax
5f5863c4:	e8 e7 fc ff ff       	call   5f5860b0 <_gimme1>
5f5863c9:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f5863cc:	50                   	push   %eax
5f5863cd:	89 f8                	mov    %edi,%eax
5f5863cf:	25 ff ff 00 00       	and    $0xffff,%eax
5f5863d4:	8b 75 f0             	mov    0xfffffff0(%ebp),%esi
5f5863d7:	50                   	push   %eax
5f5863d8:	68 7c b5 58 5f       	push   $0x5f58b57c
5f5863dd:	56                   	push   %esi
5f5863de:	e8 bd 11 00 00       	call   5f5875a0 <_sprintf>
5f5863e3:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
5f5863e6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5863e9:	5b                   	pop    %ebx
5f5863ea:	5e                   	pop    %esi
5f5863eb:	5f                   	pop    %edi
5f5863ec:	5d                   	pop    %ebp
5f5863ed:	c3                   	ret    
5f5863ee:	89 f6                	mov    %esi,%esi
5f5863f0:	85 f6                	test   %esi,%esi
5f5863f2:	0f 88 96 00 00 00    	js     5f58648e <_wine_dbgstr_an+0xee>
5f5863f8:	81 fe c8 00 00 00    	cmp    $0xc8,%esi
5f5863fe:	0f 8f 80 00 00 00    	jg     5f586484 <_wine_dbgstr_an+0xe4>
5f586404:	8d 04 b5 06 00 00 00 	lea    0x6(,%esi,4),%eax
5f58640b:	89 f3                	mov    %esi,%ebx
5f58640d:	e8 9e fc ff ff       	call   5f5860b0 <_gimme1>
5f586412:	4e                   	dec    %esi
5f586413:	89 c2                	mov    %eax,%edx
5f586415:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
5f586418:	42                   	inc    %edx
5f586419:	c6 00 22             	movb   $0x22,(%eax)
5f58641c:	85 db                	test   %ebx,%ebx
5f58641e:	7e 38                	jle    5f586458 <_wine_dbgstr_an+0xb8>
5f586420:	8a 0f                	mov    (%edi),%cl
5f586422:	84 c9                	test   %cl,%cl
5f586424:	74 32                	je     5f586458 <_wine_dbgstr_an+0xb8>
5f586426:	31 c0                	xor    %eax,%eax
5f586428:	47                   	inc    %edi
5f586429:	88 c8                	mov    %cl,%al
5f58642b:	83 f8 0d             	cmp    $0xd,%eax
5f58642e:	74 78                	je     5f5864a8 <_wine_dbgstr_an+0x108>
5f586430:	7f 63                	jg     5f586495 <_wine_dbgstr_an+0xf5>
5f586432:	83 f8 09             	cmp    $0x9,%eax
5f586435:	0f 84 b5 00 00 00    	je     5f5864f0 <_wine_dbgstr_an+0x150>
5f58643b:	83 f8 0a             	cmp    $0xa,%eax
5f58643e:	0f 84 b8 00 00 00    	je     5f5864fc <_wine_dbgstr_an+0x15c>
5f586444:	8d 41 e0             	lea    0xffffffe0(%ecx),%eax
5f586447:	3c 5e                	cmp    $0x5e,%al
5f586449:	77 66                	ja     5f5864b1 <_wine_dbgstr_an+0x111>
5f58644b:	88 0a                	mov    %cl,(%edx)
5f58644d:	8d 76 00             	lea    0x0(%esi),%esi
5f586450:	89 f0                	mov    %esi,%eax
5f586452:	42                   	inc    %edx
5f586453:	4e                   	dec    %esi
5f586454:	85 c0                	test   %eax,%eax
5f586456:	7f c8                	jg     5f586420 <_wine_dbgstr_an+0x80>
5f586458:	c6 02 22             	movb   $0x22,(%edx)
5f58645b:	42                   	inc    %edx
5f58645c:	80 3f 00             	cmpb   $0x0,(%edi)
5f58645f:	74 0c                	je     5f58646d <_wine_dbgstr_an+0xcd>
5f586461:	c6 02 2e             	movb   $0x2e,(%edx)
5f586464:	42                   	inc    %edx
5f586465:	c6 02 2e             	movb   $0x2e,(%edx)
5f586468:	42                   	inc    %edx
5f586469:	c6 02 2e             	movb   $0x2e,(%edx)
5f58646c:	42                   	inc    %edx
5f58646d:	c6 02 00             	movb   $0x0,(%edx)
5f586470:	42                   	inc    %edx
 struct _TEB * pTeb;

#if defined(__GNUC__)
 /* FIXME: instead of hardcoded offsets, use offsetof() - if possible */
 __asm__ __volatile__
5f586471:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
5f586477:	8b 80 b8 0f 00 00    	mov    0xfb8(%eax),%eax
5f58647d:	89 10                	mov    %edx,(%eax)
5f58647f:	e9 5f ff ff ff       	jmp    5f5863e3 <_wine_dbgstr_an+0x43>
5f586484:	be c8 00 00 00       	mov    $0xc8,%esi
5f586489:	e9 76 ff ff ff       	jmp    5f586404 <_wine_dbgstr_an+0x64>
5f58648e:	31 f6                	xor    %esi,%esi
5f586490:	e9 6f ff ff ff       	jmp    5f586404 <_wine_dbgstr_an+0x64>
5f586495:	83 f8 22             	cmp    $0x22,%eax
5f586498:	74 46                	je     5f5864e0 <_wine_dbgstr_an+0x140>
5f58649a:	83 f8 5c             	cmp    $0x5c,%eax
5f58649d:	75 a5                	jne    5f586444 <_wine_dbgstr_an+0xa4>
5f58649f:	c6 02 5c             	movb   $0x5c,(%edx)
5f5864a2:	42                   	inc    %edx
5f5864a3:	c6 02 5c             	movb   $0x5c,(%edx)
5f5864a6:	eb a8                	jmp    5f586450 <_wine_dbgstr_an+0xb0>
5f5864a8:	c6 02 5c             	movb   $0x5c,(%edx)
5f5864ab:	42                   	inc    %edx
5f5864ac:	c6 02 72             	movb   $0x72,(%edx)
5f5864af:	eb 9f                	jmp    5f586450 <_wine_dbgstr_an+0xb0>
5f5864b1:	88 c8                	mov    %cl,%al
5f5864b3:	c6 02 5c             	movb   $0x5c,(%edx)
5f5864b6:	c0 e8 06             	shr    $0x6,%al
5f5864b9:	42                   	inc    %edx
5f5864ba:	83 c0 30             	add    $0x30,%eax
5f5864bd:	88 02                	mov    %al,(%edx)
5f5864bf:	88 c8                	mov    %cl,%al
5f5864c1:	c0 e8 03             	shr    $0x3,%al
5f5864c4:	42                   	inc    %edx
5f5864c5:	83 e0 07             	and    $0x7,%eax
5f5864c8:	83 e1 07             	and    $0x7,%ecx
5f5864cb:	83 c0 30             	add    $0x30,%eax
5f5864ce:	88 02                	mov    %al,(%edx)
5f5864d0:	42                   	inc    %edx
5f5864d1:	8d 41 30             	lea    0x30(%ecx),%eax
5f5864d4:	88 02                	mov    %al,(%edx)
5f5864d6:	e9 75 ff ff ff       	jmp    5f586450 <_wine_dbgstr_an+0xb0>
5f5864db:	90                   	nop    
5f5864dc:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5864e0:	c6 02 5c             	movb   $0x5c,(%edx)
5f5864e3:	42                   	inc    %edx
5f5864e4:	c6 02 22             	movb   $0x22,(%edx)
5f5864e7:	e9 64 ff ff ff       	jmp    5f586450 <_wine_dbgstr_an+0xb0>
5f5864ec:	8d 74 26 00          	lea    0x0(%esi),%esi
5f5864f0:	c6 02 5c             	movb   $0x5c,(%edx)
5f5864f3:	42                   	inc    %edx
5f5864f4:	c6 02 74             	movb   $0x74,(%edx)
5f5864f7:	e9 54 ff ff ff       	jmp    5f586450 <_wine_dbgstr_an+0xb0>
5f5864fc:	c6 02 5c             	movb   $0x5c,(%edx)
5f5864ff:	42                   	inc    %edx
5f586500:	c6 02 6e             	movb   $0x6e,(%edx)
5f586503:	e9 48 ff ff ff       	jmp    5f586450 <_wine_dbgstr_an+0xb0>
5f586508:	90                   	nop    
5f586509:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f586510 <_wine_dbg_sprintf>:
5f586510:	55                   	push   %ebp
5f586511:	89 e5                	mov    %esp,%ebp
5f586513:	53                   	push   %ebx
5f586514:	50                   	push   %eax
5f586515:	b8 00 04 00 00       	mov    $0x400,%eax
5f58651a:	e8 91 fb ff ff       	call   5f5860b0 <_gimme1>
5f58651f:	89 c3                	mov    %eax,%ebx
5f586521:	8d 45 0c             	lea    0xc(%ebp),%eax
5f586524:	50                   	push   %eax
5f586525:	8b 45 08             	mov    0x8(%ebp),%eax
5f586528:	50                   	push   %eax
5f586529:	68 00 04 00 00       	push   $0x400
5f58652e:	53                   	push   %ebx
5f58652f:	e8 7c 10 00 00       	call   5f5875b0 <__vsnprintf>
5f586534:	83 c4 10             	add    $0x10,%esp
5f586537:	01 d8                	add    %ebx,%eax
 struct _TEB * pTeb;

#if defined(__GNUC__)
 /* FIXME: instead of hardcoded offsets, use offsetof() - if possible */
 __asm__ __volatile__
5f586539:	64 8b 15 18 00 00 00 	mov    %fs:0x18,%edx
5f586540:	8b 92 b8 0f 00 00    	mov    0xfb8(%edx),%edx
5f586546:	89 02                	mov    %eax,(%edx)
5f586548:	89 d8                	mov    %ebx,%eax
5f58654a:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f58654d:	c9                   	leave  
5f58654e:	c3                   	ret    
5f58654f:	90                   	nop    

5f586550 <_wine_dbgstr_longlong>:
5f586550:	55                   	push   %ebp
5f586551:	31 d2                	xor    %edx,%edx
5f586553:	89 e5                	mov    %esp,%ebp
5f586555:	56                   	push   %esi
5f586556:	53                   	push   %ebx
5f586557:	89 d6                	mov    %edx,%esi
5f586559:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5f58655c:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f58655f:	09 de                	or     %ebx,%esi
5f586561:	75 12                	jne    5f586575 <_wine_dbgstr_longlong+0x25>
5f586563:	89 4d 0c             	mov    %ecx,0xc(%ebp)
5f586566:	c7 45 08 87 b5 58 5f 	movl   $0x5f58b587,0x8(%ebp)
5f58656d:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f586570:	5b                   	pop    %ebx
5f586571:	5e                   	pop    %esi
5f586572:	5d                   	pop    %ebp
5f586573:	eb 9b                	jmp    5f586510 <_wine_dbg_sprintf>
5f586575:	52                   	push   %edx
5f586576:	51                   	push   %ecx
5f586577:	53                   	push   %ebx
5f586578:	68 8b b5 58 5f       	push   $0x5f58b58b
5f58657d:	e8 8e ff ff ff       	call   5f586510 <_wine_dbg_sprintf>
5f586582:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
5f586585:	5b                   	pop    %ebx
5f586586:	5e                   	pop    %esi
5f586587:	5d                   	pop    %ebp
5f586588:	c3                   	ret    
5f586589:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f586590 <_wine_dbgstr_w>:
5f586590:	55                   	push   %ebp
5f586591:	89 e5                	mov    %esp,%ebp
5f586593:	83 ec 10             	sub    $0x10,%esp
5f586596:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f586599:	6a ff                	push   $0xffffffff
5f58659b:	51                   	push   %ecx
5f58659c:	e8 7f fc ff ff       	call   5f586220 <_wine_dbgstr_wn>
5f5865a1:	c9                   	leave  
5f5865a2:	c3                   	ret    
5f5865a3:	90                   	nop    
5f5865a4:	90                   	nop    
5f5865a5:	90                   	nop    
5f5865a6:	90                   	nop    
5f5865a7:	90                   	nop    
5f5865a8:	90                   	nop    
5f5865a9:	90                   	nop    
5f5865aa:	90                   	nop    
5f5865ab:	90                   	nop    
5f5865ac:	90                   	nop    
5f5865ad:	90                   	nop    
5f5865ae:	90                   	nop    
5f5865af:	90                   	nop    

5f5865b0 <_StringFromGUID2@12>:
5f5865b0:	ff 25 48 02 59 5f    	jmp    *0x5f590248
5f5865b6:	90                   	nop    
5f5865b7:	90                   	nop    
	...

5f5865c0 <_GetKeyboardState@4>:
5f5865c0:	ff 25 68 02 59 5f    	jmp    *0x5f590268
5f5865c6:	90                   	nop    
5f5865c7:	90                   	nop    
	...

5f5865d0 <_MsgWaitForMultipleObjectsEx@20>:
5f5865d0:	ff 25 74 02 59 5f    	jmp    *0x5f590274
5f5865d6:	90                   	nop    
5f5865d7:	90                   	nop    
	...

5f5865e0 <_GetKeyNameTextA@12>:
5f5865e0:	ff 25 5c 02 59 5f    	jmp    *0x5f59025c
5f5865e6:	90                   	nop    
5f5865e7:	90                   	nop    
	...

5f5865f0 <_GetKeyNameTextW@12>:
5f5865f0:	ff 25 60 02 59 5f    	jmp    *0x5f590260
5f5865f6:	90                   	nop    
5f5865f7:	90                   	nop    
	...

5f586600 <_ShowCursor@4>:
5f586600:	ff 25 7c 02 59 5f    	jmp    *0x5f59027c
5f586606:	90                   	nop    
5f586607:	90                   	nop    
	...

5f586610 <_GetDesktopWindow@0>:
5f586610:	ff 25 58 02 59 5f    	jmp    *0x5f590258
5f586616:	90                   	nop    
5f586617:	90                   	nop    
	...

5f586620 <_GetCursorPos@4>:
5f586620:	ff 25 54 02 59 5f    	jmp    *0x5f590254
5f586626:	90                   	nop    
5f586627:	90                   	nop    
	...

5f586630 <_GetKeyState@4>:
5f586630:	ff 25 64 02 59 5f    	jmp    *0x5f590264
5f586636:	90                   	nop    
5f586637:	90                   	nop    
	...

5f586640 <_GetWindowRect@8>:
5f586640:	ff 25 6c 02 59 5f    	jmp    *0x5f59026c
5f586646:	90                   	nop    
5f586647:	90                   	nop    
	...

5f586650 <_MapWindowPoints@16>:
5f586650:	ff 25 70 02 59 5f    	jmp    *0x5f590270
5f586656:	90                   	nop    
5f586657:	90                   	nop    
	...

5f586660 <_SetCursorPos@8>:
5f586660:	ff 25 78 02 59 5f    	jmp    *0x5f590278
5f586666:	90                   	nop    
5f586667:	90                   	nop    
	...

5f586670 <_wsprintfW>:
5f586670:	ff 25 80 02 59 5f    	jmp    *0x5f590280
5f586676:	90                   	nop    
5f586677:	90                   	nop    
	...

5f586680 <_RegCreateKeyExW@36>:
5f586680:	ff 25 c0 01 59 5f    	jmp    *0x5f5901c0
5f586686:	90                   	nop    
5f586687:	90                   	nop    
	...

5f586690 <_RegSetValueExA@24>:
5f586690:	ff 25 d4 01 59 5f    	jmp    *0x5f5901d4
5f586696:	90                   	nop    
5f586697:	90                   	nop    
	...

5f5866a0 <_RegCloseKey@4>:
5f5866a0:	ff 25 b8 01 59 5f    	jmp    *0x5f5901b8
5f5866a6:	90                   	nop    
5f5866a7:	90                   	nop    
	...

5f5866b0 <_RegSetValueExW@24>:
5f5866b0:	ff 25 d8 01 59 5f    	jmp    *0x5f5901d8
5f5866b6:	90                   	nop    
5f5866b7:	90                   	nop    
	...

5f5866c0 <_RegCreateKeyExA@36>:
5f5866c0:	ff 25 bc 01 59 5f    	jmp    *0x5f5901bc
5f5866c6:	90                   	nop    
5f5866c7:	90                   	nop    
	...

5f5866d0 <_RegEnumKeyExW@32>:
5f5866d0:	ff 25 c8 01 59 5f    	jmp    *0x5f5901c8
5f5866d6:	90                   	nop    
5f5866d7:	90                   	nop    
	...

5f5866e0 <_RegOpenKeyExW@20>:
5f5866e0:	ff 25 d0 01 59 5f    	jmp    *0x5f5901d0
5f5866e6:	90                   	nop    
5f5866e7:	90                   	nop    
	...

5f5866f0 <_RegDeleteKeyW@8>:
5f5866f0:	ff 25 c4 01 59 5f    	jmp    *0x5f5901c4
5f5866f6:	90                   	nop    
5f5866f7:	90                   	nop    
	...

5f586700 <_RegOpenKeyExA@20>:
5f586700:	ff 25 cc 01 59 5f    	jmp    *0x5f5901cc
5f586706:	90                   	nop    
5f586707:	90                   	nop    
	...

5f586710 <_GetProcessHeap@0>:
5f586710:	ff 25 f0 01 59 5f    	jmp    *0x5f5901f0
5f586716:	90                   	nop    
5f586717:	90                   	nop    
	...

5f586720 <_HeapFree@12>:
5f586720:	ff 25 fc 01 59 5f    	jmp    *0x5f5901fc
5f586726:	90                   	nop    
5f586727:	90                   	nop    
	...

5f586730 <_HeapAlloc@12>:
5f586730:	ff 25 f8 01 59 5f    	jmp    *0x5f5901f8
5f586736:	90                   	nop    
5f586737:	90                   	nop    
	...

5f586740 <_MultiByteToWideChar@24>:
5f586740:	ff 25 10 02 59 5f    	jmp    *0x5f590210
5f586746:	90                   	nop    
5f586747:	90                   	nop    
	...

5f586750 <_InterlockedDecrement@4>:
5f586750:	ff 25 04 02 59 5f    	jmp    *0x5f590204
5f586756:	90                   	nop    
5f586757:	90                   	nop    
	...

5f586760 <_InterlockedIncrement@4>:
5f586760:	ff 25 08 02 59 5f    	jmp    *0x5f590208
5f586766:	90                   	nop    
5f586767:	90                   	nop    
	...

5f586770 <_DisableThreadLibraryCalls@4>:
5f586770:	ff 25 e8 01 59 5f    	jmp    *0x5f5901e8
5f586776:	90                   	nop    
5f586777:	90                   	nop    
	...

5f586780 <_DeleteCriticalSection@4>:
5f586780:	ff 25 e4 01 59 5f    	jmp    *0x5f5901e4
5f586786:	90                   	nop    
5f586787:	90                   	nop    
	...

5f586790 <_EnterCriticalSection@4>:
5f586790:	ff 25 ec 01 59 5f    	jmp    *0x5f5901ec
5f586796:	90                   	nop    
5f586797:	90                   	nop    
	...

5f5867a0 <_LeaveCriticalSection@4>:
5f5867a0:	ff 25 0c 02 59 5f    	jmp    *0x5f59020c
5f5867a6:	90                   	nop    
5f5867a7:	90                   	nop    
	...

5f5867b0 <_InitializeCriticalSection@4>:
5f5867b0:	ff 25 00 02 59 5f    	jmp    *0x5f590200
5f5867b6:	90                   	nop    
5f5867b7:	90                   	nop    
	...

5f5867c0 <_GetTickCount@0>:
5f5867c0:	ff 25 f4 01 59 5f    	jmp    *0x5f5901f4
5f5867c6:	90                   	nop    
5f5867c7:	90                   	nop    
	...

5f5867d0 <_lstrlenA@4>:
5f5867d0:	ff 25 14 02 59 5f    	jmp    *0x5f590214
5f5867d6:	90                   	nop    
5f5867d7:	90                   	nop    
	...

5f5867e0 <_lstrlenW@4>:
5f5867e0:	ff 25 18 02 59 5f    	jmp    *0x5f590218
5f5867e6:	90                   	nop    
5f5867e7:	90                   	nop    
	...

5f5867f0 <_CLSID_StdPicture>:
5f5867f0:	04 52                	add    $0x52,%al
5f5867f2:	e3 0b                	jecxz  5f5867ff <_CLSID_StdPicture+0xf>
5f5867f4:	91                   	xchg   %eax,%ecx
5f5867f5:	8f ce                	pop    %esi
5f5867f7:	11 9d e3 00 aa 00    	adc    %ebx,0xaa00e3(%ebp)
5f5867fd:	4b                   	dec    %ebx
5f5867fe:	b8 51 03 52 e3       	mov    $0xe3520351,%eax

5f586800 <_CLSID_StdFont>:
5f586800:	03 52 e3             	add    0xffffffe3(%edx),%edx
5f586803:	0b 91 8f ce 11 9d    	or     0x9d11ce8f(%ecx),%edx
5f586809:	e3 00                	jecxz  5f58680b <_CLSID_StdFont+0xb>
5f58680b:	aa                   	stos   %al,%es:(%edi)
5f58680c:	00 4b b8             	add    %cl,0xffffffb8(%ebx)
5f58680f:	51                   	push   %ecx

5f586810 <_IID_StdOle>:
5f586810:	30 04 02             	xor    %al,(%edx,%eax,1)
5f586813:	00 00                	add    %al,(%eax)
5f586815:	00 00                	add    %al,(%eax)
5f586817:	00 c0                	add    %al,%al
5f586819:	00 00                	add    %al,(%eax)
5f58681b:	00 00                	add    %al,(%eax)
5f58681d:	00 00                	add    %al,(%eax)
5f58681f:	46                   	inc    %esi

5f586820 <_IID_IRichEditOleCallback>:
5f586820:	03 0d 02 00 00 00    	add    0x2,%ecx
5f586826:	00 00                	add    %al,(%eax)
5f586828:	c0 00 00             	rolb   $0x0,(%eax)
5f58682b:	00 00                	add    %al,(%eax)
5f58682d:	00 00                	add    %al,(%eax)
5f58682f:	46                   	inc    %esi

5f586830 <_IID_IRichEditOle>:
5f586830:	00 0d 02 00 00 00    	add    %cl,0x2
5f586836:	00 00                	add    %al,(%eax)
5f586838:	c0 00 00             	rolb   $0x0,(%eax)
5f58683b:	00 00                	add    %al,(%eax)
5f58683d:	00 00                	add    %al,(%eax)
5f58683f:	46                   	inc    %esi

5f586840 <_FMTID_UserDefinedProperties>:
5f586840:	05 d5 cd d5 9c       	add    $0x9cd5cdd5,%eax
5f586845:	2e 1b 10             	sbb    %cs:(%eax),%edx
5f586848:	93                   	xchg   %eax,%ebx
5f586849:	97                   	xchg   %eax,%edi
5f58684a:	08 00                	or     %al,(%eax)
5f58684c:	2b 2c f9             	sub    (%ecx,%edi,8),%ebp
5f58684f:	ae                   	scas   %es:(%edi),%al

5f586850 <_FMTID_DocSummaryInformation>:
5f586850:	02 d5                	add    %ch,%dl
5f586852:	cd d5                	int    $0xd5
5f586854:	9c                   	pushf  
5f586855:	2e 1b 10             	sbb    %cs:(%eax),%edx
5f586858:	93                   	xchg   %eax,%ebx
5f586859:	97                   	xchg   %eax,%edi
5f58685a:	08 00                	or     %al,(%eax)
5f58685c:	2b 2c f9             	sub    (%ecx,%edi,8),%ebp
5f58685f:	ae                   	scas   %es:(%edi),%al

5f586860 <_FMTID_SummaryInformation>:
5f586860:	e0 85                	loopne 5f5867e7 <_lstrlenW@4+0x7>
5f586862:	9f                   	lahf   
5f586863:	f2 f9                	repnz stc 
5f586865:	4f                   	dec    %edi
5f586866:	68 10 ab 91 08       	push   $0x891ab10
5f58686b:	00 2b                	add    %ch,(%ebx)
5f58686d:	27                   	daa    
5f58686e:	b3 d9                	mov    $0xd9,%bl

5f586870 <_IID_IDPLobbySP>:
5f586870:	20 5a 4e             	and    %bl,0x4e(%edx)
5f586873:	5a                   	pop    %edx
5f586874:	ed                   	in     (%dx),%eax
5f586875:	2c d0                	sub    $0xd0,%al
5f586877:	11 a8 89 00 a0 c9    	adc    %ebp,0xc9a00089(%eax)
5f58687d:	05 43 3c fb 8e       	add    $0x8efb3c43,%eax

5f586880 <_IID_ISFHelper>:
5f586880:	fb                   	sti    
5f586881:	8e e6                	mov    %esi,%fs
5f586883:	1f                   	pop    %ds
5f586884:	74 18                	je     5f58689e <_IID_IDirectPlaySP+0xe>
5f586886:	12 98 56 dc 00 00    	adc    0xdc56(%eax),%bl
5f58688c:	00 00                	add    %al,(%eax)
	...

5f586890 <_IID_IDirectPlaySP>:
5f586890:	60                   	pusha  
5f586891:	63 9f 0c 61 cc cf    	arpl   %bx,0xcfcc610c(%edi)
5f586897:	11 ac ec 00 aa 00 68 	adc    %ebp,0x6800aa00(%esp,%ebp,8)
5f58689e:	86 e3                	xchg   %ah,%bl

5f5868a0 <_CLSID_AVIFile>:
5f5868a0:	00 00                	add    %al,(%eax)
5f5868a2:	02 00                	add    (%eax),%al
5f5868a4:	00 00                	add    %al,(%eax)
5f5868a6:	00 00                	add    %al,(%eax)
5f5868a8:	c0 00 00             	rolb   $0x0,(%eax)
5f5868ab:	00 00                	add    %al,(%eax)
5f5868ad:	00 00                	add    %al,(%eax)
5f5868af:	46                   	inc    %esi

5f5868b0 <_IID_IAVIEditStream>:
5f5868b0:	24 00                	and    $0x0,%al
5f5868b2:	02 00                	add    (%eax),%al
5f5868b4:	00 00                	add    %al,(%eax)
5f5868b6:	00 00                	add    %al,(%eax)
5f5868b8:	c0 00 00             	rolb   $0x0,(%eax)
5f5868bb:	00 00                	add    %al,(%eax)
5f5868bd:	00 00                	add    %al,(%eax)
5f5868bf:	46                   	inc    %esi

5f5868c0 <_IID_IGetFrame>:
5f5868c0:	23 00                	and    (%eax),%eax
5f5868c2:	02 00                	add    (%eax),%al
5f5868c4:	00 00                	add    %al,(%eax)
5f5868c6:	00 00                	add    %al,(%eax)
5f5868c8:	c0 00 00             	rolb   $0x0,(%eax)
5f5868cb:	00 00                	add    %al,(%eax)
5f5868cd:	00 00                	add    %al,(%eax)
5f5868cf:	46                   	inc    %esi

5f5868d0 <_IID_IAVIStreaming>:
5f5868d0:	22 00                	and    (%eax),%al
5f5868d2:	02 00                	add    (%eax),%al
5f5868d4:	00 00                	add    %al,(%eax)
5f5868d6:	00 00                	add    %al,(%eax)
5f5868d8:	c0 00 00             	rolb   $0x0,(%eax)
5f5868db:	00 00                	add    %al,(%eax)
5f5868dd:	00 00                	add    %al,(%eax)
5f5868df:	46                   	inc    %esi

5f5868e0 <_IID_IAVIStream>:
5f5868e0:	21 00                	and    %eax,(%eax)
5f5868e2:	02 00                	add    (%eax),%al
5f5868e4:	00 00                	add    %al,(%eax)
5f5868e6:	00 00                	add    %al,(%eax)
5f5868e8:	c0 00 00             	rolb   $0x0,(%eax)
5f5868eb:	00 00                	add    %al,(%eax)
5f5868ed:	00 00                	add    %al,(%eax)
5f5868ef:	46                   	inc    %esi

5f5868f0 <_IID_IAVIFile>:
5f5868f0:	20 00                	and    %al,(%eax)
5f5868f2:	02 00                	add    (%eax),%al
5f5868f4:	00 00                	add    %al,(%eax)
5f5868f6:	00 00                	add    %al,(%eax)
5f5868f8:	c0 00 00             	rolb   $0x0,(%eax)
5f5868fb:	00 00                	add    %al,(%eax)
5f5868fd:	00 00                	add    %al,(%eax)
5f5868ff:	46                   	inc    %esi

5f586900 <_CLSID_StdURLMoniker>:
5f586900:	e0 c9                	loopne 5f5868cb <_IID_IGetFrame+0xb>
5f586902:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586909:	82                   	(bad)  
5f58690a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f586910 <_IID_IAsyncMoniker>:
5f586910:	d3 c9                	ror    %cl,%ecx
5f586912:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586919:	82                   	(bad)  
5f58691a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f586920 <_CLSID_InternetZoneManager>:
5f586920:	95                   	xchg   %eax,%ebp
5f586921:	2d 8a 7b c9 0a       	sub    $0xac97b8a,%eax
5f586926:	d1 11                	rcll   (%ecx)
5f586928:	89 6c 00 c0          	mov    %ebp,0xffffffc0(%eax,%eax,1)
5f58692c:	4f                   	dec    %edi
5f58692d:	b6 bf                	mov    $0xbf,%dh
5f58692f:	c4 94 2d 8a 7b c9 0a 	les    0xac97b8a(%ebp,%ebp,1),%edx

5f586930 <_CLSID_InternetSecurityManager>:
5f586930:	94                   	xchg   %eax,%esp
5f586931:	2d 8a 7b c9 0a       	sub    $0xac97b8a,%eax
5f586936:	d1 11                	rcll   (%ecx)
5f586938:	89 6c 00 c0          	mov    %ebp,0xffffffc0(%eax,%eax,1)
5f58693c:	4f                   	dec    %edi
5f58693d:	b6 bf                	mov    $0xbf,%dh
5f58693f:	c4                   	les    (bad),%ebp

5f586940 <_IID_IInternetZoneManager>:
5f586940:	ef                   	out    %eax,(%dx)
5f586941:	c9                   	leave  
5f586942:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586949:	82                   	(bad)  
5f58694a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f586950 <_IID_IInternetSecurityManager>:
5f586950:	ee                   	out    %al,(%dx)
5f586951:	c9                   	leave  
5f586952:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586959:	82                   	(bad)  
5f58695a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f586960 <_IID_IInternetSecurityMgrSite>:
5f586960:	ed                   	in     (%dx),%eax
5f586961:	c9                   	leave  
5f586962:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586969:	82                   	(bad)  
5f58696a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f586970 <_IID_IInternetSession>:
5f586970:	e7 c9                	out    %eax,$0xc9
5f586972:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586979:	82                   	(bad)  
5f58697a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f586980 <_IID_IInternetProtocolInfo>:
5f586980:	ec                   	in     (%dx),%al
5f586981:	c9                   	leave  
5f586982:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586989:	82                   	(bad)  
5f58698a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f586990 <_IID_IPersistMoniker>:
5f586990:	c9                   	leave  
5f586991:	c9                   	leave  
5f586992:	ea 79 f9 ba ce 11 8c 	ljmp   $0x8c11,$0xcebaf979
5f586999:	82                   	(bad)  
5f58699a:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f5869a0 <_IID_IWinInetHttpInfo>:
5f5869a0:	d8 c9                	fmul   %st(1),%st
5f5869a2:	ea 79 fa ba ce 11 8c 	ljmp   $0x8c11,$0xcebafa79
5f5869a9:	82                   	(bad)  
5f5869aa:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f5869b0 <_IID_IWinInetInfo>:
5f5869b0:	d6                   	(bad)  
5f5869b1:	c9                   	leave  
5f5869b2:	ea 79 fa ba ce 11 8c 	ljmp   $0x8c11,$0xcebafa79
5f5869b9:	82                   	(bad)  
5f5869ba:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f5869c0 <_IID_IBindHost>:
5f5869c0:	a1 01 48 fc a9       	mov    0xa9fc4801,%eax
5f5869c5:	2b cf                	sub    %edi,%ecx
5f5869c7:	11 a2 29 00 aa 00    	adc    %esp,0xaa0029(%edx)
5f5869cd:	3d 73 52 c1 c9       	cmp    $0xc9c15273,%eax

5f5869d0 <_IID_IBindStatusCallback>:
5f5869d0:	c1 c9 ea             	ror    $0xea,%ecx
5f5869d3:	79 f9                	jns    5f5869ce <_IID_IBindHost+0xe>
5f5869d5:	ba ce 11 8c 82       	mov    $0x828c11ce,%edx
5f5869da:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f5869e0 <_IID_IBinding>:
5f5869e0:	c0 c9 ea             	ror    $0xea,%cl
5f5869e3:	79 f9                	jns    5f5869de <_IID_IBindStatusCallback+0xe>
5f5869e5:	ba ce 11 8c 82       	mov    $0x828c11ce,%edx
5f5869ea:	00 aa 00 4b a9 0b    	add    %ch,0xba94b00(%edx)

5f5869f0 <_IID_IAutoComplete2>:
5f5869f0:	c0 4b c0 ea          	rorb   $0xea,0xffffffc0(%ebx)
5f5869f4:	91                   	xchg   %eax,%ecx
5f5869f5:	37                   	aaa    
5f5869f6:	d2 11                	rclb   %cl,(%ecx)
5f5869f8:	bb 95 00 60 97       	mov    $0x97600095,%ebx
5f5869fd:	7b 46                	jnp    5f586a45 <_IID_IPersistFolder2+0x5>
5f5869ff:	4c                   	dec    %esp

5f586a00 <_IID_IAutoComplete>:
5f586a00:	62 27                	bound  %esp,(%edi)
5f586a02:	bb 00 77 6a d0       	mov    $0xd06a7700,%ebx
5f586a07:	11 a5 35 00 c0 4f    	adc    %esp,0x4fc00035(%ebp)
5f586a0d:	d7                   	xlat   %ds:(%ebx)
5f586a0e:	d0 62 10             	shlb   0x10(%edx)

5f586a10 <_IID_IFileSystemBindData>:
5f586a10:	10 8d e1 01 8b 4d    	adc    %cl,0x4d8b01e1(%ebp)
5f586a16:	d2 11                	rclb   %cl,(%ecx)
5f586a18:	85 5d 00             	test   %ebx,0x0(%ebp)
5f586a1b:	60                   	pusha  
5f586a1c:	08 05 93 67 df 4f    	or     %al,0x4fdf6793

5f586a20 <_IID_IPersistFolder3>:
5f586a20:	df 4f f0             	fisttp 0xfffffff0(%edi)
5f586a23:	ce                   	into   
5f586a24:	72 fe                	jb     5f586a24 <_IID_IPersistFolder3+0x4>
5f586a26:	d2 11                	rclb   %cl,(%ecx)
5f586a28:	87 a5 00 c0 4f 68    	xchg   %esp,0x684fc000(%ebp)
5f586a2e:	37                   	aaa    
5f586a2f:	cf                   	iret   

5f586a30 <_IID_IShellFolder2>:
5f586a30:	8c f6                	mov    %?,%esi
5f586a32:	f2 93                	repnz xchg %eax,%ebx
5f586a34:	1b 1d d3 11 a3 0e    	sbb    0xea311d3,%ebx
5f586a3a:	00 c0                	add    %al,%al
5f586a3c:	4f                   	dec    %edi
5f586a3d:	79 ab                	jns    5f5869ea <_IID_IBinding+0xa>
5f586a3f:	d1                   	(bad)  

5f586a40 <_IID_IPersistFolder2>:
5f586a40:	f0 d9 c3             	lock fld %st(3)
5f586a43:	1a 5c 17 d1          	sbb    0xffffffd1(%edi,%edx,1),%bl
5f586a47:	11 95 be 00 60 97    	adc    %edx,0x976000be(%ebp)
5f586a4d:	97                   	xchg   %eax,%edi
5f586a4e:	ea 4f 8b 27 57 46 1b 	ljmp   $0x1b46,$0x57278b4f

5f586a50 <_IID_IDropTargetHelper>:
5f586a50:	8b 27                	mov    (%edi),%esp
5f586a52:	57                   	push   %edi
5f586a53:	46                   	inc    %esi
5f586a54:	1b 41 d2             	sbb    0xffffffd2(%ecx),%eax
5f586a57:	11 83 9a 00 c0 4f    	adc    %eax,0x4fc0009a(%ebx)
5f586a5d:	d9 18                	fstps  (%eax)
5f586a5f:	d0 63 27             	shlb   0x27(%ebx)

5f586a60 <_CLSID_AutoComplete>:
5f586a60:	63 27                	arpl   %sp,(%edi)
5f586a62:	bb 00 77 6a d0       	mov    $0xd06a7700,%ebx
5f586a67:	11 a5 35 00 c0 4f    	adc    %esp,0x4fc00035(%ebp)
5f586a6d:	d7                   	xlat   %ds:(%ebx)
5f586a6e:	d0 62 8a             	shlb   0xffffff8a(%edx)

5f586a70 <_CLSID_DragDropHelper>:
5f586a70:	8a 27                	mov    (%edi),%ah
5f586a72:	57                   	push   %edi
5f586a73:	46                   	inc    %esi
5f586a74:	1b 41 d2             	sbb    0xffffffd2(%ecx),%eax
5f586a77:	11 83 9a 00 c0 4f    	adc    %eax,0x4fc0009a(%ebx)
5f586a7d:	d9 18                	fstps  (%eax)
5f586a7f:	d0 90 a5 6c c4 3f    	rclb   0x3fc46ca5(%eax)

5f586a80 <_IID_IQueryAssociations>:
5f586a80:	90                   	nop    
5f586a81:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5f586a82:	6c                   	insb   (%dx),%es:(%edi)
5f586a83:	c4 3f                	les    (%edi),%edi
5f586a85:	3c d2                	cmp    $0xd2,%al
5f586a87:	11 be e6 00 00 f8    	adc    %edi,0xf80000e6(%esi)
5f586a8d:	05 ca 57 80 a2       	add    $0xa28057ca,%eax

5f586a90 <_CLSID_Printers>:
5f586a90:	80 a2 27 22 ea 3a 69 	andb   $0x69,0x3aea2227(%edx)
5f586a97:	10 a2 de 08 00 2b    	adc    %ah,0x2b0008de(%edx)
5f586a9d:	30 30                	xor    %dh,(%eax)
5f586a9f:	9d                   	popf   

5f586aa0 <_CLSID_ControlPanel>:
5f586aa0:	20 20                	and    %ah,(%eax)
5f586aa2:	ec                   	in     (%dx),%al
5f586aa3:	21 ea                	and    %ebp,%edx
5f586aa5:	3a 69 10             	cmp    0x10(%ecx),%ch
5f586aa8:	a2 dd 08 00 2b       	mov    %al,0x2b0008dd
5f586aad:	30 30                	xor    %dh,(%eax)
5f586aaf:	9d                   	popf   

5f586ab0 <_CLSID_RecycleBin>:
5f586ab0:	40                   	inc    %eax
5f586ab1:	f0 5f                	lock pop %edi
5f586ab3:	64 81 50 1b 10 9f 08 	adcl   $0x89f10,%fs:0x1b(%eax)
5f586aba:	00 
5f586abb:	aa                   	stos   %al,%es:(%edi)
5f586abc:	00 2f                	add    %ch,(%edi)
5f586abe:	95                   	xchg   %eax,%ebp
5f586abf:	4e                   	dec    %esi

5f586ac0 <_CLSID_ShellFSFolder>:
5f586ac0:	a0 4b 36 f3 b9       	mov    0xb9f3364b,%al
5f586ac5:	65                   	gs
5f586ac6:	ce                   	into   
5f586ac7:	11 a9 ba 00 aa 00    	adc    %ebp,0xaa00ba(%ecx)
5f586acd:	4a                   	dec    %edx
5f586ace:	e8 37 80 53 1c       	call   7babeb0a <.stab+0x1c4db842>

5f586ad0 <_CLSID_Internet>:
5f586ad0:	80 53 1c 87          	adcb   $0x87,0x1c(%ebx)
5f586ad4:	a0 42 69 10 a2       	mov    0xa2106942,%al
5f586ad9:	ea 08 00 2b 30 30 9d 	ljmp   $0x9d30,$0x302b0008

5f586ae0 <_CLSID_MyComputer>:
5f586ae0:	e0 4f                	loopne 5f586b31 <_IID_IShellLinkW+0x1>
5f586ae2:	d0 20                	shlb   (%eax)
5f586ae4:	ea 3a 69 10 a2 d8 08 	ljmp   $0x8d8,$0xa210693a
5f586aeb:	00 2b                	add    %ch,(%ebx)
5f586aed:	30 30                	xor    %dh,(%eax)
5f586aef:	9d                   	popf   

5f586af0 <_CLSID_NetworkPlaces>:
5f586af0:	60                   	pusha  
5f586af1:	2c 8d                	sub    $0x8d,%al
5f586af3:	20 ea                	and    %ch,%dl
5f586af5:	3a 69 10             	cmp    0x10(%ecx),%ch
5f586af8:	a2 d7 08 00 2b       	mov    %al,0x2b0008d7
5f586afd:	30 30                	xor    %dh,(%eax)
5f586aff:	9d                   	popf   

5f586b00 <_SID_STopLevelBrowser>:
5f586b00:	40                   	inc    %eax
5f586b01:	be 96 4c 5c 91       	mov    $0x915c4c96,%esi
5f586b06:	cf                   	iret   
5f586b07:	11 99 d3 00 aa 00    	adc    %ebx,0xaa00d3(%ecx)
5f586b0d:	4a                   	dec    %edx
5f586b0e:	e8 37 fb 14 02       	call   616d664a <.stab+0x20f3382>

5f586b10 <_IID_IShellExecuteHookW>:
5f586b10:	fb                   	sti    
5f586b11:	14 02                	adc    $0x2,%al
5f586b13:	00 00                	add    %al,(%eax)
5f586b15:	00 00                	add    %al,(%eax)
5f586b17:	00 c0                	add    %al,%al
5f586b19:	00 00                	add    %al,(%eax)
5f586b1b:	00 00                	add    %al,(%eax)
5f586b1d:	00 00                	add    %al,(%eax)
5f586b1f:	46                   	inc    %esi

5f586b20 <_IID_IShellExecuteHookA>:
5f586b20:	f5                   	cmc    
5f586b21:	14 02                	adc    $0x2,%al
5f586b23:	00 00                	add    %al,(%eax)
5f586b25:	00 00                	add    %al,(%eax)
5f586b27:	00 c0                	add    %al,%al
5f586b29:	00 00                	add    %al,(%eax)
5f586b2b:	00 00                	add    %al,(%eax)
5f586b2d:	00 00                	add    %al,(%eax)
5f586b2f:	46                   	inc    %esi

5f586b30 <_IID_IShellLinkW>:
5f586b30:	f9                   	stc    
5f586b31:	14 02                	adc    $0x2,%al
5f586b33:	00 00                	add    %al,(%eax)
5f586b35:	00 00                	add    %al,(%eax)
5f586b37:	00 c0                	add    %al,%al
5f586b39:	00 00                	add    %al,(%eax)
5f586b3b:	00 00                	add    %al,(%eax)
5f586b3d:	00 00                	add    %al,(%eax)
5f586b3f:	46                   	inc    %esi

5f586b40 <_IID_IEnumIDList>:
5f586b40:	f2 14 02             	repnz adc $0x2,%al
5f586b43:	00 00                	add    %al,(%eax)
5f586b45:	00 00                	add    %al,(%eax)
5f586b47:	00 c0                	add    %al,%al
5f586b49:	00 00                	add    %al,(%eax)
5f586b4b:	00 00                	add    %al,(%eax)
5f586b4d:	00 00                	add    %al,(%eax)
5f586b4f:	46                   	inc    %esi

5f586b50 <_IID_IShellLinkA>:
5f586b50:	ee                   	out    %al,(%dx)
5f586b51:	14 02                	adc    $0x2,%al
5f586b53:	00 00                	add    %al,(%eax)
5f586b55:	00 00                	add    %al,(%eax)
5f586b57:	00 c0                	add    %al,%al
5f586b59:	00 00                	add    %al,(%eax)
5f586b5b:	00 00                	add    %al,(%eax)
5f586b5d:	00 00                	add    %al,(%eax)
5f586b5f:	46                   	inc    %esi

5f586b60 <_IID_IPersistFolder>:
5f586b60:	ea 14 02 00 00 00 00 	ljmp   $0x0,$0x214
5f586b67:	00 c0                	add    %al,%al
5f586b69:	00 00                	add    %al,(%eax)
5f586b6b:	00 00                	add    %al,(%eax)
5f586b6d:	00 00                	add    %al,(%eax)
5f586b6f:	46                   	inc    %esi

5f586b70 <_IID_IShellExtInit>:
5f586b70:	e8 14 02 00 00       	call   5f586d89 <_IID_IPersistPropertyBag2+0x9>
5f586b75:	00 00                	add    %al,(%eax)
5f586b77:	00 c0                	add    %al,%al
5f586b79:	00 00                	add    %al,(%eax)
5f586b7b:	00 00                	add    %al,(%eax)
5f586b7d:	00 00                	add    %al,(%eax)
5f586b7f:	46                   	inc    %esi

5f586b80 <_IID_IShellFolder>:
5f586b80:	e6 14                	out    %al,$0x14
5f586b82:	02 00                	add    (%eax),%al
5f586b84:	00 00                	add    %al,(%eax)
5f586b86:	00 00                	add    %al,(%eax)
5f586b88:	c0 00 00             	rolb   $0x0,(%eax)
5f586b8b:	00 00                	add    %al,(%eax)
5f586b8d:	00 00                	add    %al,(%eax)
5f586b8f:	46                   	inc    %esi

5f586b90 <_IID_IShellView>:
5f586b90:	e3 14                	jecxz  5f586ba6 <_IID_IShellBrowser+0x6>
5f586b92:	02 00                	add    (%eax),%al
5f586b94:	00 00                	add    %al,(%eax)
5f586b96:	00 00                	add    %al,(%eax)
5f586b98:	c0 00 00             	rolb   $0x0,(%eax)
5f586b9b:	00 00                	add    %al,(%eax)
5f586b9d:	00 00                	add    %al,(%eax)
5f586b9f:	46                   	inc    %esi

5f586ba0 <_IID_IShellBrowser>:
5f586ba0:	e2 14                	loop   5f586bb6 <_IID_ICommDlgBrowser+0x6>
5f586ba2:	02 00                	add    (%eax),%al
5f586ba4:	00 00                	add    %al,(%eax)
5f586ba6:	00 00                	add    %al,(%eax)
5f586ba8:	c0 00 00             	rolb   $0x0,(%eax)
5f586bab:	00 00                	add    %al,(%eax)
5f586bad:	00 00                	add    %al,(%eax)
5f586baf:	46                   	inc    %esi

5f586bb0 <_IID_ICommDlgBrowser>:
5f586bb0:	f1                   	icebp  
5f586bb1:	14 02                	adc    $0x2,%al
5f586bb3:	00 00                	add    %al,(%eax)
5f586bb5:	00 00                	add    %al,(%eax)
5f586bb7:	00 c0                	add    %al,%al
5f586bb9:	00 00                	add    %al,(%eax)
5f586bbb:	00 00                	add    %al,(%eax)
5f586bbd:	00 00                	add    %al,(%eax)
5f586bbf:	46                   	inc    %esi

5f586bc0 <_IID_IContextMenu2>:
5f586bc0:	f4                   	hlt    
5f586bc1:	14 02                	adc    $0x2,%al
5f586bc3:	00 00                	add    %al,(%eax)
5f586bc5:	00 00                	add    %al,(%eax)
5f586bc7:	00 c0                	add    %al,%al
5f586bc9:	00 00                	add    %al,(%eax)
5f586bcb:	00 00                	add    %al,(%eax)
5f586bcd:	00 00                	add    %al,(%eax)
5f586bcf:	46                   	inc    %esi

5f586bd0 <_IID_IContextMenu>:
5f586bd0:	e4 14                	in     $0x14,%al
5f586bd2:	02 00                	add    (%eax),%al
5f586bd4:	00 00                	add    %al,(%eax)
5f586bd6:	00 00                	add    %al,(%eax)
5f586bd8:	c0 00 00             	rolb   $0x0,(%eax)
5f586bdb:	00 00                	add    %al,(%eax)
5f586bdd:	00 00                	add    %al,(%eax)
5f586bdf:	46                   	inc    %esi

5f586be0 <_IID_IExtractIconW>:
5f586be0:	fa                   	cli    
5f586be1:	14 02                	adc    $0x2,%al
5f586be3:	00 00                	add    %al,(%eax)
5f586be5:	00 00                	add    %al,(%eax)
5f586be7:	00 c0                	add    %al,%al
5f586be9:	00 00                	add    %al,(%eax)
5f586beb:	00 00                	add    %al,(%eax)
5f586bed:	00 00                	add    %al,(%eax)
5f586bef:	46                   	inc    %esi

5f586bf0 <_IID_IExtractIconA>:
5f586bf0:	eb 14                	jmp    5f586c06 <_CGID_ShellDocView+0x6>
5f586bf2:	02 00                	add    (%eax),%al
5f586bf4:	00 00                	add    %al,(%eax)
5f586bf6:	00 00                	add    %al,(%eax)
5f586bf8:	c0 00 00             	rolb   $0x0,(%eax)
5f586bfb:	00 00                	add    %al,(%eax)
5f586bfd:	00 00                	add    %al,(%eax)
5f586bff:	46                   	inc    %esi

5f586c00 <_CGID_ShellDocView>:
5f586c00:	d1 14 02             	rcll   (%edx,%eax,1)
5f586c03:	00 00                	add    %al,(%eax)
5f586c05:	00 00                	add    %al,(%eax)
5f586c07:	00 c0                	add    %al,%al
5f586c09:	00 00                	add    %al,(%eax)
5f586c0b:	00 00                	add    %al,(%eax)
5f586c0d:	00 00                	add    %al,(%eax)
5f586c0f:	46                   	inc    %esi

5f586c10 <_CGID_Explorer>:
5f586c10:	d0 14 02             	rclb   (%edx,%eax,1)
5f586c13:	00 00                	add    %al,(%eax)
5f586c15:	00 00                	add    %al,(%eax)
5f586c17:	00 c0                	add    %al,%al
5f586c19:	00 00                	add    %al,(%eax)
5f586c1b:	00 00                	add    %al,(%eax)
5f586c1d:	00 00                	add    %al,(%eax)
5f586c1f:	46                   	inc    %esi

5f586c20 <_CLSID_ShellLink>:
5f586c20:	01 14 02             	add    %edx,(%edx,%eax,1)
5f586c23:	00 00                	add    %al,(%eax)
5f586c25:	00 00                	add    %al,(%eax)
5f586c27:	00 c0                	add    %al,%al
5f586c29:	00 00                	add    %al,(%eax)
5f586c2b:	00 00                	add    %al,(%eax)
5f586c2d:	00 00                	add    %al,(%eax)
5f586c2f:	46                   	inc    %esi

5f586c30 <_CLSID_ShellDesktop>:
5f586c30:	00 14 02             	add    %dl,(%edx,%eax,1)
5f586c33:	00 00                	add    %al,(%eax)
5f586c35:	00 00                	add    %al,(%eax)
5f586c37:	00 c0                	add    %al,%al
5f586c39:	00 00                	add    %al,(%eax)
5f586c3b:	00 00                	add    %al,(%eax)
5f586c3d:	00 00                	add    %al,(%eax)
5f586c3f:	46                   	inc    %esi

5f586c40 <_CLSID_WebBrowser>:
5f586c40:	61                   	popa   
5f586c41:	f9                   	stc    
5f586c42:	56                   	push   %esi
5f586c43:	88 0a                	mov    %cl,(%edx)
5f586c45:	34 d0                	xor    $0xd0,%al
5f586c47:	11 a9 6b 00 c0 4f    	adc    %ebp,0x4fc0006b(%ecx)
5f586c4d:	d7                   	xlat   %ds:(%ebx)
5f586c4e:	05 a2 05 df 02       	add    $0x2df05a2,%eax

5f586c50 <_IID_IWebBrowserApp>:
5f586c50:	05 df 02 00 00       	add    $0x2df,%eax
5f586c55:	00 00                	add    %al,(%eax)
5f586c57:	00 c0                	add    %al,%al
5f586c59:	00 00                	add    %al,(%eax)
5f586c5b:	00 00                	add    %al,(%eax)
5f586c5d:	00 00                	add    %al,(%eax)
5f586c5f:	46                   	inc    %esi

5f586c60 <_IID_IWebBrowser>:
5f586c60:	c1 2a b2             	shrl   $0xb2,(%edx)
5f586c63:	ea c1 30 cf 11 a7 eb 	ljmp   $0xeba7,$0x11cf30c1
5f586c6a:	00 00                	add    %al,(%eax)
5f586c6c:	c0 5b ae 0b          	rcrb   $0xb,0xffffffae(%ebx)

5f586c70 <_IID_IPrint>:
5f586c70:	c9                   	leave  
5f586c71:	bc 22 b7 68 4e       	mov    $0x4e68b722,%esp
5f586c76:	1b 10                	sbb    (%eax),%edx
5f586c78:	a2 bc 00 aa 00       	mov    %al,0xaa00bc
5f586c7d:	40                   	inc    %eax
5f586c7e:	47                   	inc    %edi
5f586c7f:	70 ca                	jo     5f586c4b <_CLSID_WebBrowser+0xb>

5f586c80 <_IID_IContinueCallback>:
5f586c80:	ca bc 22             	lret   $0x22bc
5f586c83:	b7 68                	mov    $0x68,%bh
5f586c85:	4e                   	dec    %esi
5f586c86:	1b 10                	sbb    (%eax),%edx
5f586c88:	a2 bc 00 aa 00       	mov    %al,0xaa00bc
5f586c8d:	40                   	inc    %eax
5f586c8e:	47                   	inc    %edi
5f586c8f:	70 cb                	jo     5f586c5c <_IID_IWebBrowserApp+0xc>

5f586c90 <_IID_IOleCommandTarget>:
5f586c90:	cb                   	lret   
5f586c91:	bc 22 b7 68 4e       	mov    $0x4e68b722,%esp
5f586c96:	1b 10                	sbb    (%eax),%edx
5f586c98:	a2 bc 00 aa 00       	mov    %al,0xaa00bc
5f586c9d:	40                   	inc    %eax
5f586c9e:	47                   	inc    %edi
5f586c9f:	70 c8                	jo     5f586c69 <_IID_IWebBrowser+0x9>

5f586ca0 <_IID_IEnumOleDocumentViews>:
5f586ca0:	c8 bc 22 b7          	enter  $0x22bc,$0xb7
5f586ca4:	68 4e 1b 10 a2       	push   $0xa2101b4e
5f586ca9:	bc 00 aa 00 40       	mov    $0x4000aa00,%esp
5f586cae:	47                   	inc    %edi
5f586caf:	70 c6                	jo     5f586c77 <_IID_IPrint+0x7>

5f586cb0 <_IID_IOleDocumentView>:
5f586cb0:	c6 bc 22 b7 68 4e 1b 	movb   $0x10,0x1b4e68b7(%edx)
5f586cb7:	10 
5f586cb8:	a2 bc 00 aa 00       	mov    %al,0xaa00bc
5f586cbd:	40                   	inc    %eax
5f586cbe:	47                   	inc    %edi
5f586cbf:	70 c7                	jo     5f586c88 <_IID_IContinueCallback+0x8>

5f586cc0 <_IID_IOleDocumentSite>:
5f586cc0:	c7 bc 22 b7 68 4e 1b 	movl   $0xbca210,0x1b4e68b7(%edx)
5f586cc7:	10 a2 bc 00 
5f586ccb:	aa                   	stos   %al,%es:(%edi)
5f586ccc:	00 40 47             	add    %al,0x47(%eax)
5f586ccf:	70 c5                	jo     5f586c96 <_IID_IOleCommandTarget+0x6>

5f586cd0 <_IID_IOleDocument>:
5f586cd0:	c5 bc 22 b7 68 4e 1b 	lds    0x1b4e68b7(%edx),%edi
5f586cd7:	10 a2 bc 00 aa 00    	adc    %ah,0xaa00bc(%edx)
5f586cdd:	40                   	inc    %eax
5f586cde:	47                   	inc    %edi
5f586cdf:	70 10                	jo     5f586cf1 <_IID_IOleUndoManager+0x1>

5f586ce0 <_IID_IQuickActivate>:
5f586ce0:	10 ed                	adc    %ch,%ch
5f586ce2:	51                   	push   %ecx
5f586ce3:	cf                   	iret   
5f586ce4:	fe                   	(bad)  
5f586ce5:	62 cf                	bound  %ecx,%edi
5f586ce7:	11 bf 86 00 a0 c9    	adc    %edi,0xc9a00086(%edi)
5f586ced:	03 48 36             	add    0x36(%eax),%ecx

5f586cf0 <_IID_IOleUndoManager>:
5f586cf0:	00 f2                	add    %dh,%dl
5f586cf2:	01 d0                	add    %edx,%eax
5f586cf4:	97                   	xchg   %eax,%edi
5f586cf5:	ef                   	out    %eax,(%dx)
5f586cf6:	ce                   	into   
5f586cf7:	11 9b c9 00 aa 00    	adc    %ebx,0xaa00c9(%ebx)
5f586cfd:	60                   	pusha  
5f586cfe:	8e 01                	movl   (%ecx),%es

5f586d00 <_IID_IEnumOleUndoUnits>:
5f586d00:	40                   	inc    %eax
5f586d01:	c3                   	ret    
5f586d02:	e7 b3                	out    %eax,$0xb3
5f586d04:	97                   	xchg   %eax,%edi
5f586d05:	ef                   	out    %eax,(%dx)
5f586d06:	ce                   	into   
5f586d07:	11 9b c9 00 aa 00    	adc    %ebx,0xaa00c9(%ebx)
5f586d0d:	60                   	pusha  
5f586d0e:	8e 01                	movl   (%ecx),%es

5f586d10 <_IID_IOleParentUndoUnit>:
5f586d10:	30 f3                	xor    %dh,%bl
5f586d12:	fa                   	cli    
5f586d13:	a1 97 ef ce 11       	mov    0x11ceef97,%eax
5f586d18:	9b                   	fwait
5f586d19:	c9                   	leave  
5f586d1a:	00 aa 00 60 8e 01    	add    %ch,0x18e6000(%edx)

5f586d20 <_IID_IOleUndoUnit>:
5f586d20:	b0 d3                	mov    $0xd3,%al
5f586d22:	4a                   	dec    %edx
5f586d23:	89 97 ef ce 11 9b    	mov    %edx,0x9b11ceef(%edi)
5f586d29:	c9                   	leave  
5f586d2a:	00 aa 00 60 8e 01    	add    %ch,0x18e6000(%edx)

5f586d30 <_IID_IObjectWithSite>:
5f586d30:	a3 01 48 fc a9       	mov    %eax,0xa9fc4801
5f586d35:	2b cf                	sub    %edi,%ecx
5f586d37:	11 a2 29 00 aa 00    	adc    %esp,0xaa0029(%edx)
5f586d3d:	3d 73 52 a0 0b       	cmp    $0xba05273,%eax

5f586d40 <_IID_IPointerInactive>:
5f586d40:	a0 0b 98 55 aa       	mov    0xaa55980b,%al
5f586d45:	35 cf 11 b6 71       	xor    $0x71b611cf,%eax
5f586d4a:	00 aa 00 4c d6 d8    	add    %ch,0xd8d64c00(%edx)

5f586d50 <_IID_IAdviseSinkEx>:
5f586d50:	90                   	nop    
5f586d51:	42                   	inc    %edx
5f586d52:	f2 3a 96 0c ce 11 a0 	repnz cmp 0xa011ce0c(%esi),%dl
5f586d59:	cf                   	iret   
5f586d5a:	00 aa 00 60 0a b8    	add    %ch,0xb80a6000(%edx)

5f586d60 <_IID_IPerPropertyBrowsing>:
5f586d60:	aa                   	stos   %al,%es:(%edi)
5f586d61:	d3 6b 37             	shrl   %cl,0x37(%ebx)
5f586d64:	45                   	inc    %ebp
5f586d65:	38 1b                	cmp    %bl,(%ebx)
5f586d67:	10 84 ed 08 00 2b 2e 	adc    %al,0x2e2b0008(%ebp,%ebp,8)
5f586d6e:	c7 13 8b b2 96 b1    	movl   $0xb196b28b,(%ebx)

5f586d70 <_IID_ISpecifyPropertyPages>:
5f586d70:	8b b2 96 b1 b4 ba    	mov    0xbab4b196(%edx),%esi
5f586d76:	1a 10                	sbb    (%eax),%dl
5f586d78:	b6 9c                	mov    $0x9c,%dh
5f586d7a:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586d80 <_IID_IPersistPropertyBag2>:
5f586d80:	81 58 f5 22 0b 28 d0 	sbbl   $0xd0280b22,0xfffffff5(%eax)
5f586d87:	11 a8 a9 00 a0 c9    	adc    %ebp,0xc9a000a9(%eax)
5f586d8d:	0c 20                	or     $0x20,%al
5f586d8f:	04 82                	add    $0x82,%al

5f586d90 <_IID_IPropertyBag2>:
5f586d90:	82                   	(bad)  
5f586d91:	58                   	pop    %eax
5f586d92:	f5                   	cmc    
5f586d93:	22 0b                	and    (%ebx),%cl
5f586d95:	28 d0                	sub    %dl,%al
5f586d97:	11 a8 a9 00 a0 c9    	adc    %ebp,0xc9a000a9(%eax)
5f586d9d:	0c 20                	or     $0x20,%al
5f586d9f:	04 60                	add    $0x60,%al

5f586da0 <_IID_IPersistPropertyBag>:
5f586da0:	60                   	pusha  
5f586da1:	4f                   	dec    %edi
5f586da2:	d8 37                	fdivs  (%edi)
5f586da4:	cb                   	lret   
5f586da5:	42                   	inc    %edx
5f586da6:	ce                   	into   
5f586da7:	11 81 35 00 aa 00    	adc    %eax,0xaa0035(%ecx)
5f586dad:	4b                   	dec    %ebx
5f586dae:	b8 51 e0 e5 1a       	mov    $0x1ae5e051,%eax

5f586db0 <_IID_IPersistMemory>:
5f586db0:	e0 e5                	loopne 5f586d97 <_IID_IPropertyBag2+0x7>
5f586db2:	1a bd ae a6 ce 11    	sbb    0x11cea6ae(%ebp),%bh
5f586db8:	bd 37 50 42 00       	mov    $0x425037,%ebp
5f586dbd:	c1 00 00             	roll   $0x0,(%eax)

5f586dc0 <_IID_IPersistStreamInit>:
5f586dc0:	80 23 d5             	andb   $0xd5,(%ebx)
5f586dc3:	7f 07                	jg     5f586dcc <_IID_IPersistStreamInit+0xc>
5f586dc5:	4e                   	dec    %esi
5f586dc6:	1b 10                	sbb    (%eax),%edx
5f586dc8:	ae                   	scas   %es:(%edi),%al
5f586dc9:	2d 08 00 2b 2e       	sub    $0x2e2b0008,%eax
5f586dce:	c7 13 01 0e 2b 74    	movl   $0x742b0e01,(%ebx)

5f586dd0 <_IID_ISimpleFrameSite>:
5f586dd0:	01 0e                	add    %ecx,(%esi)
5f586dd2:	2b 74 e6 14          	sub    0x14(%esi),%esi
5f586dd6:	1b 10                	sbb    (%eax),%edx
5f586dd8:	91                   	xchg   %eax,%ecx
5f586dd9:	4e                   	dec    %esi
5f586dda:	00 aa 00 30 0c ab    	add    %ch,0xab0c3000(%edx)

5f586de0 <_IID_IPropertyNotifySink>:
5f586de0:	02 bc fb 9b f1 ef 1a 	add    0x1aeff19b(%ebx,%edi,8),%bh
5f586de7:	10 84 ed 00 aa 00 34 	adc    %al,0x3400aa00(%ebp,%ebp,8)
5f586dee:	1d 07 8c b2 96       	sbb    $0x96b28c07,%eax

5f586df0 <_IID_IPropertyPageSite>:
5f586df0:	8c b2 96 b1 b4 ba    	movl   %?,0xbab4b196(%edx)
5f586df6:	1a 10                	sbb    (%eax),%dl
5f586df8:	b6 9c                	mov    $0x9c,%dh
5f586dfa:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586e00 <_IID_IPropertyPage2>:
5f586e00:	65                   	gs
5f586e01:	46                   	inc    %esi
5f586e02:	e4 01                	in     $0x1,%al
5f586e04:	ac                   	lods   %ds:(%esi),%al
5f586e05:	24 1b                	and    $0x1b,%al
5f586e07:	10 84 ed 08 00 2b 2e 	adc    %al,0x2e2b0008(%ebp,%ebp,8)
5f586e0e:	c7 13 8d b2 96 b1    	movl   $0xb196b28d,(%ebx)

5f586e10 <_IID_IPropertyPage>:
5f586e10:	8d b2 96 b1 b4 ba    	lea    0xbab4b196(%edx),%esi
5f586e16:	1a 10                	sbb    (%eax),%dl
5f586e18:	b6 9c                	mov    $0x9c,%dh
5f586e1a:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586e20 <_IID_IEnumConnectionPoints>:
5f586e20:	85 b2 96 b1 b4 ba    	test   %esi,0xbab4b196(%edx)
5f586e26:	1a 10                	sbb    (%eax),%dl
5f586e28:	b6 9c                	mov    $0x9c,%dh
5f586e2a:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586e30 <_IID_IEnumConnections>:
5f586e30:	87 b2 96 b1 b4 ba    	xchg   %esi,0xbab4b196(%edx)
5f586e36:	1a 10                	sbb    (%eax),%dl
5f586e38:	b6 9c                	mov    $0x9c,%dh
5f586e3a:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586e40 <_IID_IConnectionPointContainer>:
5f586e40:	84 b2 96 b1 b4 ba    	test   %dh,0xbab4b196(%edx)
5f586e46:	1a 10                	sbb    (%eax),%dl
5f586e48:	b6 9c                	mov    $0x9c,%dh
5f586e4a:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586e50 <_IID_IConnectionPoint>:
5f586e50:	86 b2 96 b1 b4 ba    	xchg   %dh,0xbab4b196(%edx)
5f586e56:	1a 10                	sbb    (%eax),%dl
5f586e58:	b6 9c                	mov    $0x9c,%dh
5f586e5a:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586e60 <_IID_IProvideClassInfo2>:
5f586e60:	c0 3a bc             	sarb   $0xbc,(%edx)
5f586e63:	a6                   	cmpsb  %es:(%edi),%ds:(%esi)
5f586e64:	aa                   	stos   %al,%es:(%edi)
5f586e65:	db ce                	fcmovne %st(6),%st
5f586e67:	11 9d e3 00 aa 00    	adc    %ebx,0xaa00e3(%ebp)
5f586e6d:	4b                   	dec    %ebx
5f586e6e:	b8 51 83 b2 96       	mov    $0x96b28351,%eax

5f586e70 <_IID_IProvideClassInfo>:
5f586e70:	83 b2 96 b1 b4 ba 1a 	xorl   $0x1a,0xbab4b196(%edx)
5f586e77:	10 b6 9c 00 aa 00    	adc    %dh,0xaa009c(%esi)
5f586e7d:	34 1d                	xor    $0x1d,%al
5f586e7f:	07                   	pop    %es

5f586e80 <_IID_IViewObjectEx>:
5f586e80:	92                   	xchg   %eax,%edx
5f586e81:	42                   	inc    %edx
5f586e82:	f2 3a 96 0c ce 11 a0 	repnz cmp 0xa011ce0c(%esi),%dl
5f586e89:	cf                   	iret   
5f586e8a:	00 aa 00 60 0a b8    	add    %ch,0xb80a6000(%edx)

5f586e90 <_IID_IClassFactory2>:
5f586e90:	8f b2 96 b1 b4 ba    	popl   0xbab4b196(%edx)
5f586e96:	1a 10                	sbb    (%eax),%dl
5f586e98:	b6 9c                	mov    $0x9c,%dh
5f586e9a:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586ea0 <_IID_IOleInPlaceObjectWindowless>:
5f586ea0:	cc                   	int3   
5f586ea1:	56                   	push   %esi
5f586ea2:	20 1c f4             	and    %bl,(%esp,%esi,8)
5f586ea5:	5e                   	pop    %esi
5f586ea6:	1b 10                	sbb    (%eax),%edx
5f586ea8:	8b c8                	mov    %eax,%ecx
5f586eaa:	00 aa 00 3e 3b 29    	add    %ch,0x293b3e00(%edx)

5f586eb0 <_IID_IOleInPlaceSiteWindowless>:
5f586eb0:	a0 ad 2e 92 24       	mov    0x24922ead,%al
5f586eb5:	34 cf                	xor    $0xcf,%al
5f586eb7:	11 b6 70 00 aa 00    	adc    %esi,0xaa0070(%esi)
5f586ebd:	4c                   	dec    %esp
5f586ebe:	d6                   	(bad)  
5f586ebf:	d8 80 ad 2c 9c 24    	fadds  0x249c2cad(%eax)

5f586ec0 <_IID_IOleInPlaceSiteEx>:
5f586ec0:	80 ad 2c 9c 24 34 cf 	subb   $0xcf,0x34249c2c(%ebp)
5f586ec7:	11 b6 70 00 aa 00    	adc    %esi,0xaa0070(%esi)
5f586ecd:	4c                   	dec    %esp
5f586ece:	d6                   	(bad)  
5f586ecf:	d8 89 b2 96 b1 b4    	fmuls  0xb4b196b2(%ecx)

5f586ed0 <_IID_IOleControlSite>:
5f586ed0:	89 b2 96 b1 b4 ba    	mov    %esi,0xbab4b196(%edx)
5f586ed6:	1a 10                	sbb    (%eax),%dl
5f586ed8:	b6 9c                	mov    $0x9c,%dh
5f586eda:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586ee0 <_IID_IOleControl>:
5f586ee0:	88 b2 96 b1 b4 ba    	mov    %dh,0xbab4b196(%edx)
5f586ee6:	1a 10                	sbb    (%eax),%dl
5f586ee8:	b6 9c                	mov    $0x9c,%dh
5f586eea:	00 aa 00 34 1d 07    	add    %ch,0x71d3400(%edx)

5f586ef0 <_IID_IPictureDisp>:
5f586ef0:	81 09 f8 7b 32 bf    	orl    $0xbf327bf8,(%ecx)
5f586ef6:	1a 10                	sbb    (%eax),%dl
5f586ef8:	8b bb 00 aa 00 30    	mov    0x3000aa00(%ebx),%edi
5f586efe:	0c ab                	or     $0xab,%al

5f586f00 <_IID_IPicture>:
5f586f00:	80 09 f8             	orb    $0xf8,(%ecx)
5f586f03:	7b 32                	jnp    5f586f37 <_IID_IServiceProvider+0x7>
5f586f05:	bf 1a 10 8b bb       	mov    $0xbb8b101a,%edi
5f586f0a:	00 aa 00 30 0c ab    	add    %ch,0xab0c3000(%edx)

5f586f10 <_IID_IFontDisp>:
5f586f10:	03 e0                	add    %eax,%esp
5f586f12:	f6 be 74 a8 1a 10    	idivb  0x101aa874(%esi)
5f586f18:	8b ba 00 aa 00 30    	mov    0x3000aa00(%edx),%edi
5f586f1e:	0c ab                	or     $0xab,%al

5f586f20 <_IID_IFont>:
5f586f20:	02 e0                	add    %al,%ah
5f586f22:	f6 be 74 a8 1a 10    	idivb  0x101aa874(%esi)
5f586f28:	8b ba 00 aa 00 30    	mov    0x3000aa00(%edx),%edi
5f586f2e:	0c ab                	or     $0xab,%al

5f586f30 <_IID_IServiceProvider>:
5f586f30:	c1 40 51 6d          	roll   $0x6d,0x51(%eax)
5f586f34:	36                   	ss
5f586f35:	74 ce                	je     5f586f05 <_IID_IPicture+0x5>
5f586f37:	11 80 34 00 aa 00    	adc    %eax,0xaa0034(%eax)
5f586f3d:	60                   	pusha  
5f586f3e:	09 fa                	or     %edi,%edx

5f586f40 <_IID_IDropTarget>:
5f586f40:	22 01                	and    (%ecx),%al
5f586f42:	00 00                	add    %al,(%eax)
5f586f44:	00 00                	add    %al,(%eax)
5f586f46:	00 00                	add    %al,(%eax)
5f586f48:	c0 00 00             	rolb   $0x0,(%eax)
5f586f4b:	00 00                	add    %al,(%eax)
5f586f4d:	00 00                	add    %al,(%eax)
5f586f4f:	46                   	inc    %esi

5f586f50 <_IID_IDropSource>:
5f586f50:	21 01                	and    %eax,(%ecx)
5f586f52:	00 00                	add    %al,(%eax)
5f586f54:	00 00                	add    %al,(%eax)
5f586f56:	00 00                	add    %al,(%eax)
5f586f58:	c0 00 00             	rolb   $0x0,(%eax)
5f586f5b:	00 00                	add    %al,(%eax)
5f586f5d:	00 00                	add    %al,(%eax)
5f586f5f:	46                   	inc    %esi

5f586f60 <_IID_IViewObject2>:
5f586f60:	27                   	daa    
5f586f61:	01 00                	add    %eax,(%eax)
5f586f63:	00 00                	add    %al,(%eax)
5f586f65:	00 00                	add    %al,(%eax)
5f586f67:	00 c0                	add    %al,%al
5f586f69:	00 00                	add    %al,(%eax)
5f586f6b:	00 00                	add    %al,(%eax)
5f586f6d:	00 00                	add    %al,(%eax)
5f586f6f:	46                   	inc    %esi

5f586f70 <_IID_IViewObject>:
5f586f70:	0d 01 00 00 00       	or     $0x1,%eax
5f586f75:	00 00                	add    %al,(%eax)
5f586f77:	00 c0                	add    %al,%al
5f586f79:	00 00                	add    %al,(%eax)
5f586f7b:	00 00                	add    %al,(%eax)
5f586f7d:	00 00                	add    %al,(%eax)
5f586f7f:	46                   	inc    %esi

5f586f80 <_IID_IContinue>:
5f586f80:	2a 01                	sub    (%ecx),%al
5f586f82:	00 00                	add    %al,(%eax)
5f586f84:	00 00                	add    %al,(%eax)
5f586f86:	00 00                	add    %al,(%eax)
5f586f88:	c0 00 00             	rolb   $0x0,(%eax)
5f586f8b:	00 00                	add    %al,(%eax)
5f586f8d:	00 00                	add    %al,(%eax)
5f586f8f:	46                   	inc    %esi

5f586f90 <_IID_IOleAdviseHolder>:
5f586f90:	11 01                	adc    %eax,(%ecx)
5f586f92:	00 00                	add    %al,(%eax)
5f586f94:	00 00                	add    %al,(%eax)
5f586f96:	00 00                	add    %al,(%eax)
5f586f98:	c0 00 00             	rolb   $0x0,(%eax)
5f586f9b:	00 00                	add    %al,(%eax)
5f586f9d:	00 00                	add    %al,(%eax)
5f586f9f:	46                   	inc    %esi

5f586fa0 <_IID_IOleObject>:
5f586fa0:	12 01                	adc    (%ecx),%al
5f586fa2:	00 00                	add    %al,(%eax)
5f586fa4:	00 00                	add    %al,(%eax)
5f586fa6:	00 00                	add    %al,(%eax)
5f586fa8:	c0 00 00             	rolb   $0x0,(%eax)
5f586fab:	00 00                	add    %al,(%eax)
5f586fad:	00 00                	add    %al,(%eax)
5f586faf:	46                   	inc    %esi

5f586fb0 <_IID_IEnumOLEVERB>:
5f586fb0:	04 01                	add    $0x1,%al
5f586fb2:	00 00                	add    %al,(%eax)
5f586fb4:	00 00                	add    %al,(%eax)
5f586fb6:	00 00                	add    %al,(%eax)
5f586fb8:	c0 00 00             	rolb   $0x0,(%eax)
5f586fbb:	00 00                	add    %al,(%eax)
5f586fbd:	00 00                	add    %al,(%eax)
5f586fbf:	46                   	inc    %esi

5f586fc0 <_IID_IOleCacheControl>:
5f586fc0:	29 01                	sub    %eax,(%ecx)
5f586fc2:	00 00                	add    %al,(%eax)
5f586fc4:	00 00                	add    %al,(%eax)
5f586fc6:	00 00                	add    %al,(%eax)
5f586fc8:	c0 00 00             	rolb   $0x0,(%eax)
5f586fcb:	00 00                	add    %al,(%eax)
5f586fcd:	00 00                	add    %al,(%eax)
5f586fcf:	46                   	inc    %esi

5f586fd0 <_IID_IOleCache2>:
5f586fd0:	28 01                	sub    %al,(%ecx)
5f586fd2:	00 00                	add    %al,(%eax)
5f586fd4:	00 00                	add    %al,(%eax)
5f586fd6:	00 00                	add    %al,(%eax)
5f586fd8:	c0 00 00             	rolb   $0x0,(%eax)
5f586fdb:	00 00                	add    %al,(%eax)
5f586fdd:	00 00                	add    %al,(%eax)
5f586fdf:	46                   	inc    %esi

5f586fe0 <_IID_IOleCache>:
5f586fe0:	1e                   	push   %ds
5f586fe1:	01 00                	add    %eax,(%eax)
5f586fe3:	00 00                	add    %al,(%eax)
5f586fe5:	00 00                	add    %al,(%eax)
5f586fe7:	00 c0                	add    %al,%al
5f586fe9:	00 00                	add    %al,(%eax)
5f586feb:	00 00                	add    %al,(%eax)
5f586fed:	00 00                	add    %al,(%eax)
5f586fef:	46                   	inc    %esi

5f586ff0 <_IID_IOleClientSite>:
5f586ff0:	18 01                	sbb    %al,(%ecx)
5f586ff2:	00 00                	add    %al,(%eax)
5f586ff4:	00 00                	add    %al,(%eax)
5f586ff6:	00 00                	add    %al,(%eax)
5f586ff8:	c0 00 00             	rolb   $0x0,(%eax)
5f586ffb:	00 00                	add    %al,(%eax)
5f586ffd:	00 00                	add    %al,(%eax)
5f586fff:	46                   	inc    %esi

5f587000 <_IID_IOleLink>:
5f587000:	1d 01 00 00 00       	sbb    $0x1,%eax
5f587005:	00 00                	add    %al,(%eax)
5f587007:	00 c0                	add    %al,%al
5f587009:	00 00                	add    %al,(%eax)
5f58700b:	00 00                	add    %al,(%eax)
5f58700d:	00 00                	add    %al,(%eax)
5f58700f:	46                   	inc    %esi

5f587010 <_IID_IOleItemContainer>:
5f587010:	1c 01                	sbb    $0x1,%al
5f587012:	00 00                	add    %al,(%eax)
5f587014:	00 00                	add    %al,(%eax)
5f587016:	00 00                	add    %al,(%eax)
5f587018:	c0 00 00             	rolb   $0x0,(%eax)
5f58701b:	00 00                	add    %al,(%eax)
5f58701d:	00 00                	add    %al,(%eax)
5f58701f:	46                   	inc    %esi

5f587020 <_IID_IOleContainer>:
5f587020:	1b 01                	sbb    (%ecx),%eax
5f587022:	00 00                	add    %al,(%eax)
5f587024:	00 00                	add    %al,(%eax)
5f587026:	00 00                	add    %al,(%eax)
5f587028:	c0 00 00             	rolb   $0x0,(%eax)
5f58702b:	00 00                	add    %al,(%eax)
5f58702d:	00 00                	add    %al,(%eax)
5f58702f:	46                   	inc    %esi

5f587030 <_IID_IParseDisplayName>:
5f587030:	1a 01                	sbb    (%ecx),%al
5f587032:	00 00                	add    %al,(%eax)
5f587034:	00 00                	add    %al,(%eax)
5f587036:	00 00                	add    %al,(%eax)
5f587038:	c0 00 00             	rolb   $0x0,(%eax)
5f58703b:	00 00                	add    %al,(%eax)
5f58703d:	00 00                	add    %al,(%eax)
5f58703f:	46                   	inc    %esi

5f587040 <_IID_IOleInPlaceSite>:
5f587040:	19 01                	sbb    %eax,(%ecx)
5f587042:	00 00                	add    %al,(%eax)
5f587044:	00 00                	add    %al,(%eax)
5f587046:	00 00                	add    %al,(%eax)
5f587048:	c0 00 00             	rolb   $0x0,(%eax)
5f58704b:	00 00                	add    %al,(%eax)
5f58704d:	00 00                	add    %al,(%eax)
5f58704f:	46                   	inc    %esi

5f587050 <_IID_IOleInPlaceFrame>:
5f587050:	16                   	push   %ss
5f587051:	01 00                	add    %eax,(%eax)
5f587053:	00 00                	add    %al,(%eax)
5f587055:	00 00                	add    %al,(%eax)
5f587057:	00 c0                	add    %al,%al
5f587059:	00 00                	add    %al,(%eax)
5f58705b:	00 00                	add    %al,(%eax)
5f58705d:	00 00                	add    %al,(%eax)
5f58705f:	46                   	inc    %esi

5f587060 <_IID_IOleInPlaceUIWindow>:
5f587060:	15 01 00 00 00       	adc    $0x1,%eax
5f587065:	00 00                	add    %al,(%eax)
5f587067:	00 c0                	add    %al,%al
5f587069:	00 00                	add    %al,(%eax)
5f58706b:	00 00                	add    %al,(%eax)
5f58706d:	00 00                	add    %al,(%eax)
5f58706f:	46                   	inc    %esi

5f587070 <_IID_IOleInPlaceActiveObject>:
5f587070:	17                   	pop    %ss
5f587071:	01 00                	add    %eax,(%eax)
5f587073:	00 00                	add    %al,(%eax)
5f587075:	00 00                	add    %al,(%eax)
5f587077:	00 c0                	add    %al,%al
5f587079:	00 00                	add    %al,(%eax)
5f58707b:	00 00                	add    %al,(%eax)
5f58707d:	00 00                	add    %al,(%eax)
5f58707f:	46                   	inc    %esi

5f587080 <_IID_IOleInPlaceObject>:
5f587080:	13 01                	adc    (%ecx),%eax
5f587082:	00 00                	add    %al,(%eax)
5f587084:	00 00                	add    %al,(%eax)
5f587086:	00 00                	add    %al,(%eax)
5f587088:	c0 00 00             	rolb   $0x0,(%eax)
5f58708b:	00 00                	add    %al,(%eax)
5f58708d:	00 00                	add    %al,(%eax)
5f58708f:	46                   	inc    %esi

5f587090 <_IID_IOleWindow>:
5f587090:	14 01                	adc    $0x1,%al
5f587092:	00 00                	add    %al,(%eax)
5f587094:	00 00                	add    %al,(%eax)
5f587096:	00 00                	add    %al,(%eax)
5f587098:	c0 00 00             	rolb   $0x0,(%eax)
5f58709b:	00 00                	add    %al,(%eax)
5f58709d:	00 00                	add    %al,(%eax)
5f58709f:	46                   	inc    %esi

5f5870a0 <_IID_IPropertyBag>:
5f5870a0:	00 2a                	add    %ch,(%edx)
5f5870a2:	27                   	daa    
5f5870a3:	55                   	push   %ebp
5f5870a4:	cb                   	lret   
5f5870a5:	42                   	inc    %edx
5f5870a6:	ce                   	into   
5f5870a7:	11 81 35 00 aa 00    	adc    %eax,0xaa0035(%ecx)
5f5870ad:	4b                   	dec    %ebx
5f5870ae:	b8 51 40 ca 27       	mov    $0x27ca4051,%eax

5f5870b0 <_IID_IErrorLog>:
5f5870b0:	40                   	inc    %eax
5f5870b1:	ca 27 31             	lret   $0x3127
5f5870b4:	6e                   	outsb  %ds:(%esi),(%dx)
5f5870b5:	44                   	inc    %esp
5f5870b6:	ce                   	into   
5f5870b7:	11 81 35 00 aa 00    	adc    %eax,0xaa0035(%ecx)
5f5870bd:	4b                   	dec    %ebx
5f5870be:	b8 51 0f 04 02       	mov    $0x2040f51,%eax

5f5870c0 <_IID_ICreateTypeLib2>:
5f5870c0:	0f 04                	(bad)  
5f5870c2:	02 00                	add    (%eax),%al
5f5870c4:	00 00                	add    %al,(%eax)
5f5870c6:	00 00                	add    %al,(%eax)
5f5870c8:	c0 00 00             	rolb   $0x0,(%eax)
5f5870cb:	00 00                	add    %al,(%eax)
5f5870cd:	00 00                	add    %al,(%eax)
5f5870cf:	46                   	inc    %esi

5f5870d0 <_IID_ICreateTypeLib>:
5f5870d0:	06                   	push   %es
5f5870d1:	04 02                	add    $0x2,%al
5f5870d3:	00 00                	add    %al,(%eax)
5f5870d5:	00 00                	add    %al,(%eax)
5f5870d7:	00 c0                	add    %al,%al
5f5870d9:	00 00                	add    %al,(%eax)
5f5870db:	00 00                	add    %al,(%eax)
5f5870dd:	00 00                	add    %al,(%eax)
5f5870df:	46                   	inc    %esi

5f5870e0 <_IID_ICreateTypeInfo2>:
5f5870e0:	0e                   	push   %cs
5f5870e1:	04 02                	add    $0x2,%al
5f5870e3:	00 00                	add    %al,(%eax)
5f5870e5:	00 00                	add    %al,(%eax)
5f5870e7:	00 c0                	add    %al,%al
5f5870e9:	00 00                	add    %al,(%eax)
5f5870eb:	00 00                	add    %al,(%eax)
5f5870ed:	00 00                	add    %al,(%eax)
5f5870ef:	46                   	inc    %esi

5f5870f0 <_IID_ICreateTypeInfo>:
5f5870f0:	05 04 02 00 00       	add    $0x204,%eax
5f5870f5:	00 00                	add    %al,(%eax)
5f5870f7:	00 c0                	add    %al,%al
5f5870f9:	00 00                	add    %al,(%eax)
5f5870fb:	00 00                	add    %al,(%eax)
5f5870fd:	00 00                	add    %al,(%eax)
5f5870ff:	46                   	inc    %esi

5f587100 <_IID_IRecordInfo>:
5f587100:	2f                   	das    
5f587101:	00 00                	add    %al,(%eax)
5f587103:	00 00                	add    %al,(%eax)
5f587105:	00 00                	add    %al,(%eax)
5f587107:	00 c0                	add    %al,%al
5f587109:	00 00                	add    %al,(%eax)
5f58710b:	00 00                	add    %al,(%eax)
5f58710d:	00 00                	add    %al,(%eax)
5f58710f:	46                   	inc    %esi

5f587110 <_IID_ITypeMarshal>:
5f587110:	2d 00 00 00 00       	sub    $0x0,%eax
5f587115:	00 00                	add    %al,(%eax)
5f587117:	00 c0                	add    %al,%al
5f587119:	00 00                	add    %al,(%eax)
5f58711b:	00 00                	add    %al,(%eax)
5f58711d:	00 00                	add    %al,(%eax)
5f58711f:	46                   	inc    %esi

5f587120 <_IID_ITypeFactory>:
5f587120:	2e 00 00             	add    %al,%cs:(%eax)
5f587123:	00 00                	add    %al,(%eax)
5f587125:	00 00                	add    %al,(%eax)
5f587127:	00 c0                	add    %al,%al
5f587129:	00 00                	add    %al,(%eax)
5f58712b:	00 00                	add    %al,(%eax)
5f58712d:	00 00                	add    %al,(%eax)
5f58712f:	46                   	inc    %esi

5f587130 <_IID_ISupportErrorInfo>:
5f587130:	60                   	pusha  
5f587131:	3d 0b df 8f 54       	cmp    $0x548fdf0b,%eax
5f587136:	1b 10                	sbb    (%eax),%edx
5f587138:	8e 65 08             	movl   0x8(%ebp),%fs
5f58713b:	00 2b                	add    %ch,(%ebx)
5f58713d:	2b d1                	sub    %ecx,%edx
5f58713f:	19 40 33             	sbb    %eax,0x33(%eax)

5f587140 <_IID_ICreateErrorInfo>:
5f587140:	40                   	inc    %eax
5f587141:	33 f0                	xor    %eax,%esi
5f587143:	22 7d 54             	and    0x54(%ebp),%bh
5f587146:	1b 10                	sbb    (%eax),%edx
5f587148:	8e 65 08             	movl   0x8(%ebp),%fs
5f58714b:	00 2b                	add    %ch,(%ebx)
5f58714d:	2b d1                	sub    %ecx,%edx
5f58714f:	19 20                	sbb    %esp,(%eax)

5f587150 <_IID_IErrorInfo>:
5f587150:	20 b1 f2 1c 7d 54    	and    %dh,0x547d1cf2(%ecx)
5f587156:	1b 10                	sbb    (%eax),%edx
5f587158:	8e 65 08             	movl   0x8(%ebp),%fs
5f58715b:	00 2b                	add    %ch,(%ebx)
5f58715d:	2b d1                	sub    %ecx,%edx
5f58715f:	19 10                	sbb    %edx,(%eax)

5f587160 <_IID_ITypeChangeEvents>:
5f587160:	10 04 02             	adc    %al,(%edx,%eax,1)
5f587163:	00 00                	add    %al,(%eax)
5f587165:	00 00                	add    %al,(%eax)
5f587167:	00 c0                	add    %al,%al
5f587169:	00 00                	add    %al,(%eax)
5f58716b:	00 00                	add    %al,(%eax)
5f58716d:	00 00                	add    %al,(%eax)
5f58716f:	46                   	inc    %esi

5f587170 <_IID_ITypeLib2>:
5f587170:	11 04 02             	adc    %eax,(%edx,%eax,1)
5f587173:	00 00                	add    %al,(%eax)
5f587175:	00 00                	add    %al,(%eax)
5f587177:	00 c0                	add    %al,%al
5f587179:	00 00                	add    %al,(%eax)
5f58717b:	00 00                	add    %al,(%eax)
5f58717d:	00 00                	add    %al,(%eax)
5f58717f:	46                   	inc    %esi

5f587180 <_IID_ITypeLib>:
5f587180:	02 04 02             	add    (%edx,%eax,1),%al
5f587183:	00 00                	add    %al,(%eax)
5f587185:	00 00                	add    %al,(%eax)
5f587187:	00 c0                	add    %al,%al
5f587189:	00 00                	add    %al,(%eax)
5f58718b:	00 00                	add    %al,(%eax)
5f58718d:	00 00                	add    %al,(%eax)
5f58718f:	46                   	inc    %esi

5f587190 <_IID_ITypeInfo2>:
5f587190:	12 04 02             	adc    (%edx,%eax,1),%al
5f587193:	00 00                	add    %al,(%eax)
5f587195:	00 00                	add    %al,(%eax)
5f587197:	00 c0                	add    %al,%al
5f587199:	00 00                	add    %al,(%eax)
5f58719b:	00 00                	add    %al,(%eax)
5f58719d:	00 00                	add    %al,(%eax)
5f58719f:	46                   	inc    %esi

5f5871a0 <_IID_ITypeInfo>:
5f5871a0:	01 04 02             	add    %eax,(%edx,%eax,1)
5f5871a3:	00 00                	add    %al,(%eax)
5f5871a5:	00 00                	add    %al,(%eax)
5f5871a7:	00 c0                	add    %al,%al
5f5871a9:	00 00                	add    %al,(%eax)
5f5871ab:	00 00                	add    %al,(%eax)
5f5871ad:	00 00                	add    %al,(%eax)
5f5871af:	46                   	inc    %esi

5f5871b0 <_IID_ITypeComp>:
5f5871b0:	03 04 02             	add    (%edx,%eax,1),%eax
5f5871b3:	00 00                	add    %al,(%eax)
5f5871b5:	00 00                	add    %al,(%eax)
5f5871b7:	00 c0                	add    %al,%al
5f5871b9:	00 00                	add    %al,(%eax)
5f5871bb:	00 00                	add    %al,(%eax)
5f5871bd:	00 00                	add    %al,(%eax)
5f5871bf:	46                   	inc    %esi

5f5871c0 <_IID_IEnumVARIANT>:
5f5871c0:	04 04                	add    $0x4,%al
5f5871c2:	02 00                	add    (%eax),%al
5f5871c4:	00 00                	add    %al,(%eax)
5f5871c6:	00 00                	add    %al,(%eax)
5f5871c8:	c0 00 00             	rolb   $0x0,(%eax)
5f5871cb:	00 00                	add    %al,(%eax)
5f5871cd:	00 00                	add    %al,(%eax)
5f5871cf:	46                   	inc    %esi

5f5871d0 <_IID_IDispatch>:
5f5871d0:	00 04 02             	add    %al,(%edx,%eax,1)
5f5871d3:	00 00                	add    %al,(%eax)
5f5871d5:	00 00                	add    %al,(%eax)
5f5871d7:	00 c0                	add    %al,%al
5f5871d9:	00 00                	add    %al,(%eax)
5f5871db:	00 00                	add    %al,(%eax)
5f5871dd:	00 00                	add    %al,(%eax)
5f5871df:	46                   	inc    %esi

5f5871e0 <_IID_IInternalUnknown>:
5f5871e0:	21 00                	and    %eax,(%eax)
5f5871e2:	00 00                	add    %al,(%eax)
5f5871e4:	00 00                	add    %al,(%eax)
5f5871e6:	00 00                	add    %al,(%eax)
5f5871e8:	c0 00 00             	rolb   $0x0,(%eax)
5f5871eb:	00 00                	add    %al,(%eax)
5f5871ed:	00 00                	add    %al,(%eax)
5f5871ef:	46                   	inc    %esi

5f5871f0 <_IID_IAsyncManager>:
5f5871f0:	2a 00                	sub    (%eax),%al
5f5871f2:	00 00                	add    %al,(%eax)
5f5871f4:	00 00                	add    %al,(%eax)
5f5871f6:	00 00                	add    %al,(%eax)
5f5871f8:	c0 00 00             	rolb   $0x0,(%eax)
5f5871fb:	00 00                	add    %al,(%eax)
5f5871fd:	00 00                	add    %al,(%eax)
5f5871ff:	46                   	inc    %esi

5f587200 <_IID_IAsyncSetup>:
5f587200:	24 00                	and    $0x0,%al
5f587202:	00 00                	add    %al,(%eax)
5f587204:	00 00                	add    %al,(%eax)
5f587206:	00 00                	add    %al,(%eax)
5f587208:	c0 00 00             	rolb   $0x0,(%eax)
5f58720b:	00 00                	add    %al,(%eax)
5f58720d:	00 00                	add    %al,(%eax)
5f58720f:	46                   	inc    %esi

5f587210 <_IID_IServerSecurity>:
5f587210:	3e 01 00             	add    %eax,%ds:(%eax)
5f587213:	00 00                	add    %al,(%eax)
5f587215:	00 00                	add    %al,(%eax)
5f587217:	00 c0                	add    %al,%al
5f587219:	00 00                	add    %al,(%eax)
5f58721b:	00 00                	add    %al,(%eax)
5f58721d:	00 00                	add    %al,(%eax)
5f58721f:	46                   	inc    %esi

5f587220 <_IID_IClientSecurity>:
5f587220:	3d 01 00 00 00       	cmp    $0x1,%eax
5f587225:	00 00                	add    %al,(%eax)
5f587227:	00 c0                	add    %al,%al
5f587229:	00 00                	add    %al,(%eax)
5f58722b:	00 00                	add    %al,(%eax)
5f58722d:	00 00                	add    %al,(%eax)
5f58722f:	46                   	inc    %esi

5f587230 <_IID_IEnumSTATPROPSETSTG>:
5f587230:	3b 01                	cmp    (%ecx),%eax
5f587232:	00 00                	add    %al,(%eax)
5f587234:	00 00                	add    %al,(%eax)
5f587236:	00 00                	add    %al,(%eax)
5f587238:	c0 00 00             	rolb   $0x0,(%eax)
5f58723b:	00 00                	add    %al,(%eax)
5f58723d:	00 00                	add    %al,(%eax)
5f58723f:	46                   	inc    %esi

5f587240 <_IID_IEnumSTATPROPSTG>:
5f587240:	39 01                	cmp    %eax,(%ecx)
5f587242:	00 00                	add    %al,(%eax)
5f587244:	00 00                	add    %al,(%eax)
5f587246:	00 00                	add    %al,(%eax)
5f587248:	c0 00 00             	rolb   $0x0,(%eax)
5f58724b:	00 00                	add    %al,(%eax)
5f58724d:	00 00                	add    %al,(%eax)
5f58724f:	46                   	inc    %esi

5f587250 <_IID_IPropertySetStorage>:
5f587250:	3a 01                	cmp    (%ecx),%al
5f587252:	00 00                	add    %al,(%eax)
5f587254:	00 00                	add    %al,(%eax)
5f587256:	00 00                	add    %al,(%eax)
5f587258:	c0 00 00             	rolb   $0x0,(%eax)
5f58725b:	00 00                	add    %al,(%eax)
5f58725d:	00 00                	add    %al,(%eax)
5f58725f:	46                   	inc    %esi

5f587260 <_IID_IPropertyStorage>:
5f587260:	38 01                	cmp    %al,(%ecx)
5f587262:	00 00                	add    %al,(%eax)
5f587264:	00 00                	add    %al,(%eax)
5f587266:	00 00                	add    %al,(%eax)
5f587268:	c0 00 00             	rolb   $0x0,(%eax)
5f58726b:	00 00                	add    %al,(%eax)
5f58726d:	00 00                	add    %al,(%eax)
5f58726f:	46                   	inc    %esi

5f587270 <_IID_IChannelHook>:
5f587270:	a0 c4 08 10 13       	mov    0x131008c4,%al
5f587275:	76 cf                	jbe    5f587246 <_IID_IEnumSTATPROPSTG+0x6>
5f587277:	11 9a f1 00 20 af    	adc    %ebx,0xaf2000f1(%edx)
5f58727d:	6e                   	outsb  %ds:(%esi),(%dx)
5f58727e:	72 f4                	jb     5f587274 <_IID_IChannelHook+0x4>

5f587280 <_IID_IPSFactoryBuffer>:
5f587280:	d0 69 f5             	shrb   0xfffffff5(%ecx)
5f587283:	d5 3b                	aad    $0x3b
5f587285:	59                   	pop    %ecx
5f587286:	1a 10                	sbb    (%eax),%dl
5f587288:	b5 69                	mov    $0x69,%ch
5f58728a:	08 00                	or     %al,(%eax)
5f58728c:	2b 2d bf 7a fc 6a    	sub    0x6afc7abf,%ebp

5f587290 <_IID_IRpcStubBuffer>:
5f587290:	fc                   	cld    
5f587291:	6a f5                	push   $0xfffffff5
5f587293:	d5 3b                	aad    $0x3b
5f587295:	59                   	pop    %ecx
5f587296:	1a 10                	sbb    (%eax),%dl
5f587298:	b5 69                	mov    $0x69,%ch
5f58729a:	08 00                	or     %al,(%eax)
5f58729c:	2b 2d bf 7a 34 6a    	sub    0x6a347abf,%ebp

5f5872a0 <_IID_IRpcProxyBuffer>:
5f5872a0:	34 6a                	xor    $0x6a,%al
5f5872a2:	f5                   	cmc    
5f5872a3:	d5 3b                	aad    $0x3b
5f5872a5:	59                   	pop    %ecx
5f5872a6:	1a 10                	sbb    (%eax),%dl
5f5872a8:	b5 69                	mov    $0x69,%ch
5f5872aa:	08 00                	or     %al,(%eax)
5f5872ac:	2b 2d bf 7a 00 56    	sub    0x56007abf,%ebp

5f5872b0 <_IID_IRpcChannelBuffer3>:
5f5872b0:	00 56 b1             	add    %dl,0xffffffb1(%esi)
5f5872b3:	25 15 01 d0 11       	and    $0x11d00115,%eax
5f5872b8:	bf 0d 00 aa 00       	mov    $0xaa000d,%edi
5f5872bd:	b8 df d2 d0 31       	mov    $0x31d0d2df,%eax

5f5872c0 <_IID_IRpcChannelBuffer2>:
5f5872c0:	d0                   	(bad)  
5f5872c1:	31 4f 59             	xor    %ecx,0x59(%edi)
5f5872c4:	19 7f d0             	sbb    %edi,0xffffffd0(%edi)
5f5872c7:	11 b1 94 00 a0 c9    	adc    %esi,0xc9a00094(%ecx)
5f5872cd:	0d c8 bf 60 6b       	or     $0x6b60bfc8,%eax

5f5872d0 <_IID_IRpcChannelBuffer>:
5f5872d0:	60                   	pusha  
5f5872d1:	6b f5 d5             	imul   $0xffffffd5,%ebp,%esi
5f5872d4:	3b 59 1a             	cmp    0x1a(%ecx),%ebx
5f5872d7:	10 b5 69 08 00 2b    	adc    %dh,0x2b000869(%ebp)
5f5872dd:	2d bf 7a 16 00       	sub    $0x167abf,%eax

5f5872e0 <_IID_IMessageFilter>:
5f5872e0:	16                   	push   %ss
5f5872e1:	00 00                	add    %al,(%eax)
5f5872e3:	00 00                	add    %al,(%eax)
5f5872e5:	00 00                	add    %al,(%eax)
5f5872e7:	00 c0                	add    %al,%al
5f5872e9:	00 00                	add    %al,(%eax)
5f5872eb:	00 00                	add    %al,(%eax)
5f5872ed:	00 00                	add    %al,(%eax)
5f5872ef:	46                   	inc    %esi

5f5872f0 <_IID_IDataAdviseHolder>:
5f5872f0:	10 01                	adc    %al,(%ecx)
5f5872f2:	00 00                	add    %al,(%eax)
5f5872f4:	00 00                	add    %al,(%eax)
5f5872f6:	00 00                	add    %al,(%eax)
5f5872f8:	c0 00 00             	rolb   $0x0,(%eax)
5f5872fb:	00 00                	add    %al,(%eax)
5f5872fd:	00 00                	add    %al,(%eax)
5f5872ff:	46                   	inc    %esi

5f587300 <_IID_IDataObject>:
5f587300:	0e                   	push   %cs
5f587301:	01 00                	add    %eax,(%eax)
5f587303:	00 00                	add    %al,(%eax)
5f587305:	00 00                	add    %al,(%eax)
5f587307:	00 c0                	add    %al,%al
5f587309:	00 00                	add    %al,(%eax)
5f58730b:	00 00                	add    %al,(%eax)
5f58730d:	00 00                	add    %al,(%eax)
5f58730f:	46                   	inc    %esi

5f587310 <_IID_IAdviseSink2>:
5f587310:	25 01 00 00 00       	and    $0x1,%eax
5f587315:	00 00                	add    %al,(%eax)
5f587317:	00 c0                	add    %al,%al
5f587319:	00 00                	add    %al,(%eax)
5f58731b:	00 00                	add    %al,(%eax)
5f58731d:	00 00                	add    %al,(%eax)
5f58731f:	46                   	inc    %esi

5f587320 <_IID_IAdviseSink>:
5f587320:	0f 01 00             	sgdtl  (%eax)
5f587323:	00 00                	add    %al,(%eax)
5f587325:	00 00                	add    %al,(%eax)
5f587327:	00 c0                	add    %al,%al
5f587329:	00 00                	add    %al,(%eax)
5f58732b:	00 00                	add    %al,(%eax)
5f58732d:	00 00                	add    %al,(%eax)
5f58732f:	46                   	inc    %esi

5f587330 <_IID_IEnumSTATDATA>:
5f587330:	05 01 00 00 00       	add    $0x1,%eax
5f587335:	00 00                	add    %al,(%eax)
5f587337:	00 c0                	add    %al,%al
5f587339:	00 00                	add    %al,(%eax)
5f58733b:	00 00                	add    %al,(%eax)
5f58733d:	00 00                	add    %al,(%eax)
5f58733f:	46                   	inc    %esi

5f587340 <_IID_IEnumFORMATETC>:
5f587340:	03 01                	add    (%ecx),%eax
5f587342:	00 00                	add    %al,(%eax)
5f587344:	00 00                	add    %al,(%eax)
5f587346:	00 00                	add    %al,(%eax)
5f587348:	c0 00 00             	rolb   $0x0,(%eax)
5f58734b:	00 00                	add    %al,(%eax)
5f58734d:	00 00                	add    %al,(%eax)
5f58734f:	46                   	inc    %esi

5f587350 <_IID_ILayoutStorage>:
5f587350:	90                   	nop    
5f587351:	4d                   	dec    %ebp
5f587352:	6d                   	insl   (%dx),%es:(%edi)
5f587353:	0e                   	push   %cs
5f587354:	38 67 cf             	cmp    %ah,0xffffffcf(%edi)
5f587357:	11 96 08 00 aa 00    	adc    %edx,0xaa0008(%esi)
5f58735d:	68 0d b4 a0 58       	push   $0x58a0b40d

5f587360 <_IID_IProgressNotify>:
5f587360:	a0 58 d7 a9 17       	mov    0x17a9d758,%al
5f587365:	46                   	inc    %esi
5f587366:	cf                   	iret   
5f587367:	11 95 fc 00 aa 00    	adc    %edx,0xaa00fc(%ebp)
5f58736d:	68 0d b4 10 f0       	push   $0xf010b40d

5f587370 <_IID_IFillLockBytes>:
5f587370:	10 f0                	adc    %dh,%al
5f587372:	ca 99 5e             	lret   $0x5e99
5f587375:	41                   	inc    %ecx
5f587376:	cf                   	iret   
5f587377:	11 88 14 00 aa 00    	adc    %ecx,0xaa0014(%eax)
5f58737d:	b5 69                	mov    $0x69,%ch
5f58737f:	f5                   	cmc    

5f587380 <_IID_ILockBytes>:
5f587380:	0a 00                	or     (%eax),%al
5f587382:	00 00                	add    %al,(%eax)
5f587384:	00 00                	add    %al,(%eax)
5f587386:	00 00                	add    %al,(%eax)
5f587388:	c0 00 00             	rolb   $0x0,(%eax)
5f58738b:	00 00                	add    %al,(%eax)
5f58738d:	00 00                	add    %al,(%eax)
5f58738f:	46                   	inc    %esi

5f587390 <_IID_IRootStorage>:
5f587390:	12 00                	adc    (%eax),%al
5f587392:	00 00                	add    %al,(%eax)
5f587394:	00 00                	add    %al,(%eax)
5f587396:	00 00                	add    %al,(%eax)
5f587398:	c0 00 00             	rolb   $0x0,(%eax)
5f58739b:	00 00                	add    %al,(%eax)
5f58739d:	00 00                	add    %al,(%eax)
5f58739f:	46                   	inc    %esi

5f5873a0 <_IID_IPersistStorage>:
5f5873a0:	0a 01                	or     (%ecx),%al
5f5873a2:	00 00                	add    %al,(%eax)
5f5873a4:	00 00                	add    %al,(%eax)
5f5873a6:	00 00                	add    %al,(%eax)
5f5873a8:	c0 00 00             	rolb   $0x0,(%eax)
5f5873ab:	00 00                	add    %al,(%eax)
5f5873ad:	00 00                	add    %al,(%eax)
5f5873af:	46                   	inc    %esi

5f5873b0 <_IID_IPersistFile>:
5f5873b0:	0b 01                	or     (%ecx),%eax
5f5873b2:	00 00                	add    %al,(%eax)
5f5873b4:	00 00                	add    %al,(%eax)
5f5873b6:	00 00                	add    %al,(%eax)
5f5873b8:	c0 00 00             	rolb   $0x0,(%eax)
5f5873bb:	00 00                	add    %al,(%eax)
5f5873bd:	00 00                	add    %al,(%eax)
5f5873bf:	46                   	inc    %esi

5f5873c0 <_IID_IStorage>:
5f5873c0:	0b 00                	or     (%eax),%eax
5f5873c2:	00 00                	add    %al,(%eax)
5f5873c4:	00 00                	add    %al,(%eax)
5f5873c6:	00 00                	add    %al,(%eax)
5f5873c8:	c0 00 00             	rolb   $0x0,(%eax)
5f5873cb:	00 00                	add    %al,(%eax)
5f5873cd:	00 00                	add    %al,(%eax)
5f5873cf:	46                   	inc    %esi

5f5873d0 <_IID_IEnumSTATSTG>:
5f5873d0:	0d 00 00 00 00       	or     $0x0,%eax
5f5873d5:	00 00                	add    %al,(%eax)
5f5873d7:	00 c0                	add    %al,%al
5f5873d9:	00 00                	add    %al,(%eax)
5f5873db:	00 00                	add    %al,(%eax)
5f5873dd:	00 00                	add    %al,(%eax)
5f5873df:	46                   	inc    %esi

5f5873e0 <_IID_IStream>:
5f5873e0:	0c 00                	or     $0x0,%al
5f5873e2:	00 00                	add    %al,(%eax)
5f5873e4:	00 00                	add    %al,(%eax)
5f5873e6:	00 00                	add    %al,(%eax)
5f5873e8:	c0 00 00             	rolb   $0x0,(%eax)
5f5873eb:	00 00                	add    %al,(%eax)
5f5873ed:	00 00                	add    %al,(%eax)
5f5873ef:	46                   	inc    %esi

5f5873f0 <_IID_ISequentialStream>:
5f5873f0:	30 3a                	xor    %bh,(%edx)
5f5873f2:	73 0c                	jae    5f587400 <_IID_IClassActivator>
5f5873f4:	1c 2a                	sbb    $0x2a,%al
5f5873f6:	ce                   	into   
5f5873f7:	11 ad e5 00 aa 00    	adc    %ebp,0xaa00e5(%ebp)
5f5873fd:	44                   	inc    %esp
5f5873fe:	77 3d                	ja     5f58743d <_IID_IMoniker+0xd>

5f587400 <_IID_IClassActivator>:
5f587400:	40                   	inc    %eax
5f587401:	01 00                	add    %eax,(%eax)
5f587403:	00 00                	add    %al,(%eax)
5f587405:	00 00                	add    %al,(%eax)
5f587407:	00 c0                	add    %al,%al
5f587409:	00 00                	add    %al,(%eax)
5f58740b:	00 00                	add    %al,(%eax)
5f58740d:	00 00                	add    %al,(%eax)
5f58740f:	46                   	inc    %esi

5f587410 <_IID_IEnumString>:
5f587410:	01 01                	add    %eax,(%ecx)
5f587412:	00 00                	add    %al,(%eax)
5f587414:	00 00                	add    %al,(%eax)
5f587416:	00 00                	add    %al,(%eax)
5f587418:	c0 00 00             	rolb   $0x0,(%eax)
5f58741b:	00 00                	add    %al,(%eax)
5f58741d:	00 00                	add    %al,(%eax)
5f58741f:	46                   	inc    %esi

5f587420 <_IID_IROTData>:
5f587420:	c0 6b 9f f2          	shrb   $0xf2,0xffffff9f(%ebx)
5f587424:	21 50 ce             	and    %edx,0xffffffce(%eax)
5f587427:	11 aa 15 00 00 69    	adc    %ebp,0x69000015(%edx)
5f58742d:	01 29                	add    %ebp,(%ecx)
5f58742f:	3f                   	aas    

5f587430 <_IID_IMoniker>:
5f587430:	0f 00 00             	sldtl  (%eax)
5f587433:	00 00                	add    %al,(%eax)
5f587435:	00 00                	add    %al,(%eax)
5f587437:	00 c0                	add    %al,%al
5f587439:	00 00                	add    %al,(%eax)
5f58743b:	00 00                	add    %al,(%eax)
5f58743d:	00 00                	add    %al,(%eax)
5f58743f:	46                   	inc    %esi

5f587440 <_IID_IPersistStream>:
5f587440:	09 01                	or     %eax,(%ecx)
5f587442:	00 00                	add    %al,(%eax)
5f587444:	00 00                	add    %al,(%eax)
5f587446:	00 00                	add    %al,(%eax)
5f587448:	c0 00 00             	rolb   $0x0,(%eax)
5f58744b:	00 00                	add    %al,(%eax)
5f58744d:	00 00                	add    %al,(%eax)
5f58744f:	46                   	inc    %esi

5f587450 <_IID_IPersist>:
5f587450:	0c 01                	or     $0x1,%al
5f587452:	00 00                	add    %al,(%eax)
5f587454:	00 00                	add    %al,(%eax)
5f587456:	00 00                	add    %al,(%eax)
5f587458:	c0 00 00             	rolb   $0x0,(%eax)
5f58745b:	00 00                	add    %al,(%eax)
5f58745d:	00 00                	add    %al,(%eax)
5f58745f:	46                   	inc    %esi

5f587460 <_IID_IRunningObjectTable>:
5f587460:	10 00                	adc    %al,(%eax)
5f587462:	00 00                	add    %al,(%eax)
5f587464:	00 00                	add    %al,(%eax)
5f587466:	00 00                	add    %al,(%eax)
5f587468:	c0 00 00             	rolb   $0x0,(%eax)
5f58746b:	00 00                	add    %al,(%eax)
5f58746d:	00 00                	add    %al,(%eax)
5f58746f:	46                   	inc    %esi

5f587470 <_IID_IRunnableObject>:
5f587470:	26 01 00             	add    %eax,%es:(%eax)
5f587473:	00 00                	add    %al,(%eax)
5f587475:	00 00                	add    %al,(%eax)
5f587477:	00 c0                	add    %al,%al
5f587479:	00 00                	add    %al,(%eax)
5f58747b:	00 00                	add    %al,(%eax)
5f58747d:	00 00                	add    %al,(%eax)
5f58747f:	46                   	inc    %esi

5f587480 <_IID_IEnumMoniker>:
5f587480:	02 01                	add    (%ecx),%al
5f587482:	00 00                	add    %al,(%eax)
5f587484:	00 00                	add    %al,(%eax)
5f587486:	00 00                	add    %al,(%eax)
5f587488:	c0 00 00             	rolb   $0x0,(%eax)
5f58748b:	00 00                	add    %al,(%eax)
5f58748d:	00 00                	add    %al,(%eax)
5f58748f:	46                   	inc    %esi

5f587490 <_IID_IBindCtx>:
5f587490:	0e                   	push   %cs
5f587491:	00 00                	add    %al,(%eax)
5f587493:	00 00                	add    %al,(%eax)
5f587495:	00 00                	add    %al,(%eax)
5f587497:	00 c0                	add    %al,%al
5f587499:	00 00                	add    %al,(%eax)
5f58749b:	00 00                	add    %al,(%eax)
5f58749d:	00 00                	add    %al,(%eax)
5f58749f:	46                   	inc    %esi

5f5874a0 <_IID_IGlobalInterfaceTable>:
5f5874a0:	46                   	inc    %esi
5f5874a1:	01 00                	add    %eax,(%eax)
5f5874a3:	00 00                	add    %al,(%eax)
5f5874a5:	00 00                	add    %al,(%eax)
5f5874a7:	00 c0                	add    %al,%al
5f5874a9:	00 00                	add    %al,(%eax)
5f5874ab:	00 00                	add    %al,(%eax)
5f5874ad:	00 00                	add    %al,(%eax)
5f5874af:	46                   	inc    %esi

5f5874b0 <_IID_ISurrogate>:
5f5874b0:	22 00                	and    (%eax),%al
5f5874b2:	00 00                	add    %al,(%eax)
5f5874b4:	00 00                	add    %al,(%eax)
5f5874b6:	00 00                	add    %al,(%eax)
5f5874b8:	c0 00 00             	rolb   $0x0,(%eax)
5f5874bb:	00 00                	add    %al,(%eax)
5f5874bd:	00 00                	add    %al,(%eax)
5f5874bf:	46                   	inc    %esi

5f5874c0 <_IID_IEnumUnknown>:
5f5874c0:	00 01                	add    %al,(%ecx)
5f5874c2:	00 00                	add    %al,(%eax)
5f5874c4:	00 00                	add    %al,(%eax)
5f5874c6:	00 00                	add    %al,(%eax)
5f5874c8:	c0 00 00             	rolb   $0x0,(%eax)
5f5874cb:	00 00                	add    %al,(%eax)
5f5874cd:	00 00                	add    %al,(%eax)
5f5874cf:	46                   	inc    %esi

5f5874d0 <_IID_IMallocSpy>:
5f5874d0:	1d 00 00 00 00       	sbb    $0x0,%eax
5f5874d5:	00 00                	add    %al,(%eax)
5f5874d7:	00 c0                	add    %al,%al
5f5874d9:	00 00                	add    %al,(%eax)
5f5874db:	00 00                	add    %al,(%eax)
5f5874dd:	00 00                	add    %al,(%eax)
5f5874df:	46                   	inc    %esi

5f5874e0 <_IID_IMalloc>:
5f5874e0:	02 00                	add    (%eax),%al
5f5874e2:	00 00                	add    %al,(%eax)
5f5874e4:	00 00                	add    %al,(%eax)
5f5874e6:	00 00                	add    %al,(%eax)
5f5874e8:	c0 00 00             	rolb   $0x0,(%eax)
5f5874eb:	00 00                	add    %al,(%eax)
5f5874ed:	00 00                	add    %al,(%eax)
5f5874ef:	46                   	inc    %esi

5f5874f0 <_IID_IMultiQI>:
5f5874f0:	20 00                	and    %al,(%eax)
5f5874f2:	00 00                	add    %al,(%eax)
5f5874f4:	00 00                	add    %al,(%eax)
5f5874f6:	00 00                	add    %al,(%eax)
5f5874f8:	c0 00 00             	rolb   $0x0,(%eax)
5f5874fb:	00 00                	add    %al,(%eax)
5f5874fd:	00 00                	add    %al,(%eax)
5f5874ff:	46                   	inc    %esi

5f587500 <_IID_IExternalConnection>:
5f587500:	19 00                	sbb    %eax,(%eax)
5f587502:	00 00                	add    %al,(%eax)
5f587504:	00 00                	add    %al,(%eax)
5f587506:	00 00                	add    %al,(%eax)
5f587508:	c0 00 00             	rolb   $0x0,(%eax)
5f58750b:	00 00                	add    %al,(%eax)
5f58750d:	00 00                	add    %al,(%eax)
5f58750f:	46                   	inc    %esi

5f587510 <_IID_IStdMarshalInfo>:
5f587510:	18 00                	sbb    %al,(%eax)
5f587512:	00 00                	add    %al,(%eax)
5f587514:	00 00                	add    %al,(%eax)
5f587516:	00 00                	add    %al,(%eax)
5f587518:	c0 00 00             	rolb   $0x0,(%eax)
5f58751b:	00 00                	add    %al,(%eax)
5f58751d:	00 00                	add    %al,(%eax)
5f58751f:	46                   	inc    %esi

5f587520 <_IID_IMarshal>:
5f587520:	03 00                	add    (%eax),%eax
5f587522:	00 00                	add    %al,(%eax)
5f587524:	00 00                	add    %al,(%eax)
5f587526:	00 00                	add    %al,(%eax)
5f587528:	c0 00 00             	rolb   $0x0,(%eax)
5f58752b:	00 00                	add    %al,(%eax)
5f58752d:	00 00                	add    %al,(%eax)
5f58752f:	46                   	inc    %esi

5f587530 <_IID_IClassFactory>:
5f587530:	01 00                	add    %eax,(%eax)
5f587532:	00 00                	add    %al,(%eax)
5f587534:	00 00                	add    %al,(%eax)
5f587536:	00 00                	add    %al,(%eax)
5f587538:	c0 00 00             	rolb   $0x0,(%eax)
5f58753b:	00 00                	add    %al,(%eax)
5f58753d:	00 00                	add    %al,(%eax)
5f58753f:	46                   	inc    %esi

5f587540 <_IID_IUnknown>:
	...
5f587548:	c0 00 00             	rolb   $0x0,(%eax)
5f58754b:	00 00                	add    %al,(%eax)
5f58754d:	00 00                	add    %al,(%eax)
5f58754f:	46                   	inc    %esi

5f587550 <_memset>:
5f587550:	ff 25 34 02 59 5f    	jmp    *0x5f590234
5f587556:	90                   	nop    
5f587557:	90                   	nop    
	...

5f587560 <_memcpy>:
5f587560:	ff 25 30 02 59 5f    	jmp    *0x5f590230
5f587566:	90                   	nop    
5f587567:	90                   	nop    
	...

5f587570 <_DbgPrint>:
5f587570:	ff 25 24 02 59 5f    	jmp    *0x5f590224
5f587576:	90                   	nop    
5f587577:	90                   	nop    
	...

5f587580 <_strlen>:
5f587580:	ff 25 3c 02 59 5f    	jmp    *0x5f59023c
5f587586:	90                   	nop    
5f587587:	90                   	nop    
	...

5f587590 <_RtlAllocateHeap@12>:
5f587590:	ff 25 28 02 59 5f    	jmp    *0x5f590228
5f587596:	90                   	nop    
5f587597:	90                   	nop    
	...

5f5875a0 <_sprintf>:
5f5875a0:	ff 25 38 02 59 5f    	jmp    *0x5f590238
5f5875a6:	90                   	nop    
5f5875a7:	90                   	nop    
	...

5f5875b0 <__vsnprintf>:
5f5875b0:	ff 25 2c 02 59 5f    	jmp    *0x5f59022c
5f5875b6:	90                   	nop    
5f5875b7:	90                   	nop    
	...

5f5875c0 <___do_global_dtors>:
5f5875c0:	55                   	push   %ebp
5f5875c1:	89 e5                	mov    %esp,%ebp
5f5875c3:	83 ec 08             	sub    $0x8,%esp
5f5875c6:	a1 e0 91 58 5f       	mov    0x5f5891e0,%eax
5f5875cb:	8b 08                	mov    (%eax),%ecx
5f5875cd:	85 c9                	test   %ecx,%ecx
5f5875cf:	74 26                	je     5f5875f7 <___do_global_dtors+0x37>
5f5875d1:	eb 0d                	jmp    5f5875e0 <___do_global_dtors+0x20>
5f5875d3:	90                   	nop    
5f5875d4:	90                   	nop    
5f5875d5:	90                   	nop    
5f5875d6:	90                   	nop    
5f5875d7:	90                   	nop    
5f5875d8:	90                   	nop    
5f5875d9:	90                   	nop    
5f5875da:	90                   	nop    
5f5875db:	90                   	nop    
5f5875dc:	90                   	nop    
5f5875dd:	90                   	nop    
5f5875de:	90                   	nop    
5f5875df:	90                   	nop    
5f5875e0:	ff 10                	call   *(%eax)
5f5875e2:	8b 0d e0 91 58 5f    	mov    0x5f5891e0,%ecx
5f5875e8:	8b 51 04             	mov    0x4(%ecx),%edx
5f5875eb:	8d 41 04             	lea    0x4(%ecx),%eax
5f5875ee:	a3 e0 91 58 5f       	mov    %eax,0x5f5891e0
5f5875f3:	85 d2                	test   %edx,%edx
5f5875f5:	75 e9                	jne    5f5875e0 <___do_global_dtors+0x20>
5f5875f7:	c9                   	leave  
5f5875f8:	c3                   	ret    
5f5875f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

5f587600 <___do_global_ctors>:
5f587600:	55                   	push   %ebp
5f587601:	89 e5                	mov    %esp,%ebp
5f587603:	53                   	push   %ebx
5f587604:	83 ec 04             	sub    $0x4,%esp
5f587607:	a1 00 7b 58 5f       	mov    0x5f587b00,%eax
5f58760c:	83 f8 ff             	cmp    $0xffffffff,%eax
5f58760f:	74 29                	je     5f58763a <___do_global_ctors+0x3a>
5f587611:	85 c0                	test   %eax,%eax
5f587613:	89 c3                	mov    %eax,%ebx
5f587615:	74 13                	je     5f58762a <___do_global_ctors+0x2a>
5f587617:	89 f6                	mov    %esi,%esi
5f587619:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi
5f587620:	ff 14 9d 00 7b 58 5f 	call   *0x5f587b00(,%ebx,4)
5f587627:	4b                   	dec    %ebx
5f587628:	75 f6                	jne    5f587620 <___do_global_ctors+0x20>
5f58762a:	c7 04 24 c0 75 58 5f 	movl   $0x5f5875c0,(%esp)
5f587631:	e8 2a 9b ff ff       	call   5f581160 <_atexit>
5f587636:	5b                   	pop    %ebx
5f587637:	5b                   	pop    %ebx
5f587638:	5d                   	pop    %ebp
5f587639:	c3                   	ret    
5f58763a:	8b 0d 04 7b 58 5f    	mov    0x5f587b04,%ecx
5f587640:	31 c0                	xor    %eax,%eax
5f587642:	85 c9                	test   %ecx,%ecx
5f587644:	eb 0a                	jmp    5f587650 <___do_global_ctors+0x50>
5f587646:	40                   	inc    %eax
5f587647:	8b 14 85 04 7b 58 5f 	mov    0x5f587b04(,%eax,4),%edx
5f58764e:	85 d2                	test   %edx,%edx
5f587650:	75 f4                	jne    5f587646 <___do_global_ctors+0x46>
5f587652:	eb bd                	jmp    5f587611 <___do_global_ctors+0x11>
5f587654:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f58765a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

5f587660 <___main>:
5f587660:	55                   	push   %ebp
5f587661:	89 e5                	mov    %esp,%ebp
5f587663:	53                   	push   %ebx
5f587664:	83 ec 04             	sub    $0x4,%esp
5f587667:	a1 30 ea 58 5f       	mov    0x5f58ea30,%eax
5f58766c:	85 c0                	test   %eax,%eax
5f58766e:	75 36                	jne    5f5876a6 <___main+0x46>
5f587670:	a1 00 7b 58 5f       	mov    0x5f587b00,%eax
5f587675:	bb 01 00 00 00       	mov    $0x1,%ebx
5f58767a:	89 1d 30 ea 58 5f    	mov    %ebx,0x5f58ea30
5f587680:	83 f8 ff             	cmp    $0xffffffff,%eax
5f587683:	74 25                	je     5f5876aa <___main+0x4a>
5f587685:	85 c0                	test   %eax,%eax
5f587687:	89 c3                	mov    %eax,%ebx
5f587689:	74 0f                	je     5f58769a <___main+0x3a>
5f58768b:	90                   	nop    
5f58768c:	8d 74 26 00          	lea    0x0(%esi),%esi
5f587690:	ff 14 9d 00 7b 58 5f 	call   *0x5f587b00(,%ebx,4)
5f587697:	4b                   	dec    %ebx
5f587698:	75 f6                	jne    5f587690 <___main+0x30>
5f58769a:	c7 04 24 c0 75 58 5f 	movl   $0x5f5875c0,(%esp)
5f5876a1:	e8 ba 9a ff ff       	call   5f581160 <_atexit>
5f5876a6:	5b                   	pop    %ebx
5f5876a7:	5b                   	pop    %ebx
5f5876a8:	5d                   	pop    %ebp
5f5876a9:	c3                   	ret    
5f5876aa:	8b 0d 04 7b 58 5f    	mov    0x5f587b04,%ecx
5f5876b0:	31 c0                	xor    %eax,%eax
5f5876b2:	85 c9                	test   %ecx,%ecx
5f5876b4:	eb 0a                	jmp    5f5876c0 <___main+0x60>
5f5876b6:	40                   	inc    %eax
5f5876b7:	8b 14 85 04 7b 58 5f 	mov    0x5f587b04(,%eax,4),%edx
5f5876be:	85 d2                	test   %edx,%edx
5f5876c0:	75 f4                	jne    5f5876b6 <___main+0x56>
5f5876c2:	eb c1                	jmp    5f587685 <___main+0x25>
5f5876c4:	90                   	nop    
5f5876c5:	90                   	nop    
5f5876c6:	90                   	nop    
5f5876c7:	90                   	nop    
5f5876c8:	90                   	nop    
5f5876c9:	90                   	nop    
5f5876ca:	90                   	nop    
5f5876cb:	90                   	nop    
5f5876cc:	90                   	nop    
5f5876cd:	90                   	nop    
5f5876ce:	90                   	nop    
5f5876cf:	90                   	nop    

5f5876d0 <__pei386_runtime_relocator>:
5f5876d0:	55                   	push   %ebp
5f5876d1:	b9 60 db 58 5f       	mov    $0x5f58db60,%ecx
5f5876d6:	89 e5                	mov    %esp,%ebp
5f5876d8:	eb 14                	jmp    5f5876ee <__pei386_runtime_relocator+0x1e>
5f5876da:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
5f5876e0:	8b 51 04             	mov    0x4(%ecx),%edx
5f5876e3:	8b 01                	mov    (%ecx),%eax
5f5876e5:	83 c1 08             	add    $0x8,%ecx
5f5876e8:	01 82 00 00 58 5f    	add    %eax,0x5f580000(%edx)
5f5876ee:	81 f9 60 db 58 5f    	cmp    $0x5f58db60,%ecx
5f5876f4:	72 ea                	jb     5f5876e0 <__pei386_runtime_relocator+0x10>
5f5876f6:	5d                   	pop    %ebp
5f5876f7:	c3                   	ret    
5f5876f8:	90                   	nop    
5f5876f9:	90                   	nop    
5f5876fa:	90                   	nop    
5f5876fb:	90                   	nop    
5f5876fc:	90                   	nop    
5f5876fd:	90                   	nop    
5f5876fe:	90                   	nop    
5f5876ff:	90                   	nop    

5f587700 <___w32_sharedptr_default_unexpected>:
5f587700:	55                   	push   %ebp
5f587701:	a1 a0 ea 58 5f       	mov    0x5f58eaa0,%eax
5f587706:	89 e5                	mov    %esp,%ebp
5f587708:	5d                   	pop    %ebp
5f587709:	8b 48 04             	mov    0x4(%eax),%ecx
5f58770c:	ff e1                	jmp    *%ecx
5f58770e:	89 f6                	mov    %esi,%esi

5f587710 <___w32_sharedptr_get>:
5f587710:	55                   	push   %ebp
5f587711:	ba 42 00 00 00       	mov    $0x42,%edx
5f587716:	89 e5                	mov    %esp,%ebp
5f587718:	53                   	push   %ebx
5f587719:	0f b7 c0             	movzwl %ax,%eax
5f58771c:	83 ec 64             	sub    $0x64,%esp
5f58771f:	89 54 24 08          	mov    %edx,0x8(%esp)
5f587723:	8d 55 a8             	lea    0xffffffa8(%ebp),%edx
5f587726:	31 db                	xor    %ebx,%ebx
5f587728:	89 54 24 04          	mov    %edx,0x4(%esp)
5f58772c:	89 04 24             	mov    %eax,(%esp)
5f58772f:	ff 15 94 02 59 5f    	call   *0x5f590294
5f587735:	ba 1f 00 00 00       	mov    $0x1f,%edx
5f58773a:	b9 01 00 00 00       	mov    $0x1,%ecx
5f58773f:	83 ec 0c             	sub    $0xc,%esp
5f587742:	85 c0                	test   %eax,%eax
5f587744:	75 07                	jne    5f58774d <___w32_sharedptr_get+0x3d>
5f587746:	eb 46                	jmp    5f58778e <___w32_sharedptr_get+0x7e>
5f587748:	01 c9                	add    %ecx,%ecx
5f58774a:	4a                   	dec    %edx
5f58774b:	78 0e                	js     5f58775b <___w32_sharedptr_get+0x4b>
5f58774d:	80 7c 2a a8 41       	cmpb   $0x41,0xffffffa8(%edx,%ebp,1)
5f587752:	75 f4                	jne    5f587748 <___w32_sharedptr_get+0x38>
5f587754:	09 cb                	or     %ecx,%ebx
5f587756:	01 c9                	add    %ecx,%ecx
5f587758:	4a                   	dec    %edx
5f587759:	79 f2                	jns    5f58774d <___w32_sharedptr_get+0x3d>
5f58775b:	83 3b 3c             	cmpl   $0x3c,(%ebx)
5f58775e:	75 07                	jne    5f587767 <___w32_sharedptr_get+0x57>
5f587760:	89 d8                	mov    %ebx,%eax
5f587762:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
5f587765:	c9                   	leave  
5f587766:	c3                   	ret    
5f587767:	b9 a4 da 58 5f       	mov    $0x5f58daa4,%ecx
5f58776c:	ba ea 00 00 00       	mov    $0xea,%edx
5f587771:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5f587775:	89 54 24 08          	mov    %edx,0x8(%esp)
5f587779:	c7 04 24 d1 da 58 5f 	movl   $0x5f58dad1,(%esp)
5f587780:	b8 f0 da 58 5f       	mov    $0x5f58daf0,%eax
5f587785:	89 44 24 04          	mov    %eax,0x4(%esp)
5f587789:	e8 62 02 00 00       	call   5f5879f0 <___eprintf>
5f58778e:	b8 1c db 58 5f       	mov    $0x5f58db1c,%eax
5f587793:	bb e4 00 00 00       	mov    $0xe4,%ebx
5f587798:	89 44 24 0c          	mov    %eax,0xc(%esp)
5f58779c:	89 5c 24 08          	mov    %ebx,0x8(%esp)
5f5877a0:	eb d7                	jmp    5f587779 <___w32_sharedptr_get+0x69>
5f5877a2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
5f5877a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

5f5877b0 <___w32_sharedptr_initialize>:
5f5877b0:	55                   	push   %ebp
5f5877b1:	89 e5                	mov    %esp,%ebp
5f5877b3:	57                   	push   %edi
5f5877b4:	56                   	push   %esi
5f5877b5:	53                   	push   %ebx
5f5877b6:	81 ec cc 00 00 00    	sub    $0xcc,%esp
5f5877bc:	8b 0d a0 ea 58 5f    	mov    0x5f58eaa0,%ecx
5f5877c2:	85 c9                	test   %ecx,%ecx
5f5877c4:	74 08                	je     5f5877ce <___w32_sharedptr_initialize+0x1e>
5f5877c6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5877c9:	5b                   	pop    %ebx
5f5877ca:	5e                   	pop    %esi
5f5877cb:	5f                   	pop    %edi
5f5877cc:	5d                   	pop    %ebp
5f5877cd:	c3                   	ret    
5f5877ce:	c7 45 98 41 41 41 41 	movl   $0x41414141,0xffffff98(%ebp)
5f5877d5:	a1 80 da 58 5f       	mov    0x5f58da80,%eax
5f5877da:	8d 75 98             	lea    0xffffff98(%ebp),%esi
5f5877dd:	c7 45 9c 41 41 41 41 	movl   $0x41414141,0xffffff9c(%ebp)
5f5877e4:	c7 45 a0 41 41 41 41 	movl   $0x41414141,0xffffffa0(%ebp)
5f5877eb:	89 45 b8             	mov    %eax,0xffffffb8(%ebp)
5f5877ee:	a1 84 da 58 5f       	mov    0x5f58da84,%eax
5f5877f3:	c7 45 a4 41 41 41 41 	movl   $0x41414141,0xffffffa4(%ebp)
5f5877fa:	c7 45 a8 41 41 41 41 	movl   $0x41414141,0xffffffa8(%ebp)
5f587801:	89 45 bc             	mov    %eax,0xffffffbc(%ebp)
5f587804:	a1 88 da 58 5f       	mov    0x5f58da88,%eax
5f587809:	c7 45 ac 41 41 41 41 	movl   $0x41414141,0xffffffac(%ebp)
5f587810:	c7 45 b0 41 41 41 41 	movl   $0x41414141,0xffffffb0(%ebp)
5f587817:	89 45 c0             	mov    %eax,0xffffffc0(%ebp)
5f58781a:	a1 8c da 58 5f       	mov    0x5f58da8c,%eax
5f58781f:	c7 45 b4 41 41 41 41 	movl   $0x41414141,0xffffffb4(%ebp)
5f587826:	89 45 c4             	mov    %eax,0xffffffc4(%ebp)
5f587829:	a1 90 da 58 5f       	mov    0x5f58da90,%eax
5f58782e:	89 45 c8             	mov    %eax,0xffffffc8(%ebp)
5f587831:	a1 94 da 58 5f       	mov    0x5f58da94,%eax
5f587836:	89 45 cc             	mov    %eax,0xffffffcc(%ebp)
5f587839:	a1 98 da 58 5f       	mov    0x5f58da98,%eax
5f58783e:	89 45 d0             	mov    %eax,0xffffffd0(%ebp)
5f587841:	a1 9c da 58 5f       	mov    0x5f58da9c,%eax
5f587846:	89 45 d4             	mov    %eax,0xffffffd4(%ebp)
5f587849:	0f b7 05 a0 da 58 5f 	movzwl 0x5f58daa0,%eax
5f587850:	66 89 45 d8          	mov    %ax,0xffffffd8(%ebp)
5f587854:	89 34 24             	mov    %esi,(%esp)
5f587857:	ff 15 90 02 59 5f    	call   *0x5f590290
5f58785d:	0f b7 c0             	movzwl %ax,%eax
5f587860:	83 ec 04             	sub    $0x4,%esp
5f587863:	85 c0                	test   %eax,%eax
5f587865:	89 85 44 ff ff ff    	mov    %eax,0xffffff44(%ebp)
5f58786b:	0f 85 3b 01 00 00    	jne    5f5879ac <___w32_sharedptr_initialize+0x1fc>
5f587871:	c7 04 24 3c 00 00 00 	movl   $0x3c,(%esp)
5f587878:	e8 03 02 00 00       	call   5f587a80 <_malloc>
5f58787d:	85 c0                	test   %eax,%eax
5f58787f:	89 c3                	mov    %eax,%ebx
5f587881:	0f 84 59 01 00 00    	je     5f5879e0 <___w32_sharedptr_initialize+0x230>
5f587887:	fc                   	cld    
5f587888:	89 c7                	mov    %eax,%edi
5f58788a:	8b 85 44 ff ff ff    	mov    0xffffff44(%ebp),%eax
5f587890:	b9 0f 00 00 00       	mov    $0xf,%ecx
5f587895:	f3 ab                	repz stos %eax,%es:(%edi)
5f587897:	c7 43 04 a0 7a 58 5f 	movl   $0x5f587aa0,0x4(%ebx)
5f58789e:	b9 01 00 00 00       	mov    $0x1,%ecx
5f5878a3:	c7 43 08 00 77 58 5f 	movl   $0x5f587700,0x8(%ebx)
5f5878aa:	a1 50 ea 58 5f       	mov    0x5f58ea50,%eax
5f5878af:	c7 03 3c 00 00 00    	movl   $0x3c,(%ebx)
5f5878b5:	8b 15 54 ea 58 5f    	mov    0x5f58ea54,%edx
5f5878bb:	c7 43 28 00 00 00 00 	movl   $0x0,0x28(%ebx)
5f5878c2:	89 43 14             	mov    %eax,0x14(%ebx)
5f5878c5:	a1 f0 91 58 5f       	mov    0x5f5891f0,%eax
5f5878ca:	89 53 18             	mov    %edx,0x18(%ebx)
5f5878cd:	8b 15 f4 91 58 5f    	mov    0x5f5891f4,%edx
5f5878d3:	89 43 1c             	mov    %eax,0x1c(%ebx)
5f5878d6:	a1 60 ea 58 5f       	mov    0x5f58ea60,%eax
5f5878db:	89 53 20             	mov    %edx,0x20(%ebx)
5f5878de:	c7 43 30 ff ff ff ff 	movl   $0xffffffff,0x30(%ebx)
5f5878e5:	89 43 2c             	mov    %eax,0x2c(%ebx)
5f5878e8:	8b 15 fc 91 58 5f    	mov    0x5f5891fc,%edx
5f5878ee:	a1 f8 91 58 5f       	mov    0x5f5891f8,%eax
5f5878f3:	89 53 38             	mov    %edx,0x38(%ebx)
5f5878f6:	ba 1f 00 00 00       	mov    $0x1f,%edx
5f5878fb:	89 43 34             	mov    %eax,0x34(%ebx)
5f5878fe:	89 f6                	mov    %esi,%esi
5f587900:	89 d8                	mov    %ebx,%eax
5f587902:	21 c8                	and    %ecx,%eax
5f587904:	83 f8 01             	cmp    $0x1,%eax
5f587907:	19 c0                	sbb    %eax,%eax
5f587909:	24 20                	and    $0x20,%al
5f58790b:	01 c9                	add    %ecx,%ecx
5f58790d:	04 41                	add    $0x41,%al
5f58790f:	88 84 2a 48 ff ff ff 	mov    %al,0xffffff48(%edx,%ebp,1)
5f587916:	4a                   	dec    %edx
5f587917:	79 e7                	jns    5f587900 <___w32_sharedptr_initialize+0x150>
5f587919:	a1 80 da 58 5f       	mov    0x5f58da80,%eax
5f58791e:	89 85 68 ff ff ff    	mov    %eax,0xffffff68(%ebp)
5f587924:	a1 84 da 58 5f       	mov    0x5f58da84,%eax
5f587929:	89 85 6c ff ff ff    	mov    %eax,0xffffff6c(%ebp)
5f58792f:	a1 88 da 58 5f       	mov    0x5f58da88,%eax
5f587934:	89 85 70 ff ff ff    	mov    %eax,0xffffff70(%ebp)
5f58793a:	a1 8c da 58 5f       	mov    0x5f58da8c,%eax
5f58793f:	89 85 74 ff ff ff    	mov    %eax,0xffffff74(%ebp)
5f587945:	a1 90 da 58 5f       	mov    0x5f58da90,%eax
5f58794a:	89 85 78 ff ff ff    	mov    %eax,0xffffff78(%ebp)
5f587950:	a1 94 da 58 5f       	mov    0x5f58da94,%eax
5f587955:	89 85 7c ff ff ff    	mov    %eax,0xffffff7c(%ebp)
5f58795b:	a1 98 da 58 5f       	mov    0x5f58da98,%eax
5f587960:	89 45 80             	mov    %eax,0xffffff80(%ebp)
5f587963:	a1 9c da 58 5f       	mov    0x5f58da9c,%eax
5f587968:	89 45 84             	mov    %eax,0xffffff84(%ebp)
5f58796b:	0f b7 05 a0 da 58 5f 	movzwl 0x5f58daa0,%eax
5f587972:	66 89 45 88          	mov    %ax,0xffffff88(%ebp)
5f587976:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
5f58797c:	89 04 24             	mov    %eax,(%esp)
5f58797f:	ff 15 8c 02 59 5f    	call   *0x5f59028c
5f587985:	0f b7 f8             	movzwl %ax,%edi
5f587988:	83 ec 04             	sub    $0x4,%esp
5f58798b:	85 ff                	test   %edi,%edi
5f58798d:	75 42                	jne    5f5879d1 <___w32_sharedptr_initialize+0x221>
5f58798f:	31 d2                	xor    %edx,%edx
5f587991:	85 d2                	test   %edx,%edx
5f587993:	75 1e                	jne    5f5879b3 <___w32_sharedptr_initialize+0x203>
5f587995:	89 1c 24             	mov    %ebx,(%esp)
5f587998:	e8 c3 00 00 00       	call   5f587a60 <_free>
5f58799d:	89 34 24             	mov    %esi,(%esp)
5f5879a0:	ff 15 90 02 59 5f    	call   *0x5f590290
5f5879a6:	83 ec 04             	sub    $0x4,%esp
5f5879a9:	0f b7 c0             	movzwl %ax,%eax
5f5879ac:	e8 5f fd ff ff       	call   5f587710 <___w32_sharedptr_get>
5f5879b1:	89 c3                	mov    %eax,%ebx
5f5879b3:	89 1d a0 ea 58 5f    	mov    %ebx,0x5f58eaa0
5f5879b9:	8d 43 04             	lea    0x4(%ebx),%eax
5f5879bc:	a3 90 ea 58 5f       	mov    %eax,0x5f58ea90
5f5879c1:	8d 43 08             	lea    0x8(%ebx),%eax
5f5879c4:	a3 b0 ea 58 5f       	mov    %eax,0x5f58eab0
5f5879c9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
5f5879cc:	5b                   	pop    %ebx
5f5879cd:	5e                   	pop    %esi
5f5879ce:	5f                   	pop    %edi
5f5879cf:	5d                   	pop    %ebp
5f5879d0:	c3                   	ret    
5f5879d1:	89 f8                	mov    %edi,%eax
5f5879d3:	e8 38 fd ff ff       	call   5f587710 <___w32_sharedptr_get>
5f5879d8:	39 d8                	cmp    %ebx,%eax
5f5879da:	89 fa                	mov    %edi,%edx
5f5879dc:	75 b1                	jne    5f58798f <___w32_sharedptr_initialize+0x1df>
5f5879de:	eb b1                	jmp    5f587991 <___w32_sharedptr_initialize+0x1e1>
5f5879e0:	e8 bb 00 00 00       	call   5f587aa0 <_abort>
5f5879e5:	90                   	nop    
5f5879e6:	90                   	nop    
5f5879e7:	90                   	nop    
5f5879e8:	90                   	nop    
5f5879e9:	90                   	nop    
5f5879ea:	90                   	nop    
5f5879eb:	90                   	nop    
5f5879ec:	90                   	nop    
5f5879ed:	90                   	nop    
5f5879ee:	90                   	nop    
5f5879ef:	90                   	nop    

5f5879f0 <___eprintf>:
5f5879f0:	55                   	push   %ebp
5f5879f1:	89 e5                	mov    %esp,%ebp
5f5879f3:	83 ec 18             	sub    $0x18,%esp
5f5879f6:	8b 45 14             	mov    0x14(%ebp),%eax
5f5879f9:	89 44 24 10          	mov    %eax,0x10(%esp)
5f5879fd:	8b 45 10             	mov    0x10(%ebp),%eax
5f587a00:	89 44 24 0c          	mov    %eax,0xc(%esp)
5f587a04:	8b 45 0c             	mov    0xc(%ebp),%eax
5f587a07:	89 44 24 08          	mov    %eax,0x8(%esp)
5f587a0b:	8b 45 08             	mov    0x8(%ebp),%eax
5f587a0e:	89 44 24 04          	mov    %eax,0x4(%esp)
5f587a12:	a1 ac 02 59 5f       	mov    0x5f5902ac,%eax
5f587a17:	83 c0 40             	add    $0x40,%eax
5f587a1a:	89 04 24             	mov    %eax,(%esp)
5f587a1d:	e8 8e 00 00 00       	call   5f587ab0 <_fprintf>
5f587a22:	a1 ac 02 59 5f       	mov    0x5f5902ac,%eax
5f587a27:	83 c0 40             	add    $0x40,%eax
5f587a2a:	89 04 24             	mov    %eax,(%esp)
5f587a2d:	e8 1e 00 00 00       	call   5f587a50 <_fflush>
5f587a32:	e8 69 00 00 00       	call   5f587aa0 <_abort>
5f587a37:	90                   	nop    
5f587a38:	90                   	nop    
5f587a39:	90                   	nop    
5f587a3a:	90                   	nop    
5f587a3b:	90                   	nop    
5f587a3c:	90                   	nop    
5f587a3d:	90                   	nop    
5f587a3e:	90                   	nop    
5f587a3f:	90                   	nop    

5f587a40 <___dllonexit>:
5f587a40:	ff 25 a0 02 59 5f    	jmp    *0x5f5902a0
5f587a46:	90                   	nop    
5f587a47:	90                   	nop    
	...

5f587a50 <_fflush>:
5f587a50:	ff 25 b4 02 59 5f    	jmp    *0x5f5902b4
5f587a56:	90                   	nop    
5f587a57:	90                   	nop    
	...

5f587a60 <_free>:
5f587a60:	ff 25 bc 02 59 5f    	jmp    *0x5f5902bc
5f587a66:	90                   	nop    
5f587a67:	90                   	nop    
	...

5f587a70 <__errno>:
5f587a70:	ff 25 a8 02 59 5f    	jmp    *0x5f5902a8
5f587a76:	90                   	nop    
5f587a77:	90                   	nop    
	...

5f587a80 <_malloc>:
5f587a80:	ff 25 c0 02 59 5f    	jmp    *0x5f5902c0
5f587a86:	90                   	nop    
5f587a87:	90                   	nop    
	...

5f587a90 <__assert>:
5f587a90:	ff 25 a4 02 59 5f    	jmp    *0x5f5902a4
5f587a96:	90                   	nop    
5f587a97:	90                   	nop    
	...

5f587aa0 <_abort>:
5f587aa0:	ff 25 b0 02 59 5f    	jmp    *0x5f5902b0
5f587aa6:	90                   	nop    
5f587aa7:	90                   	nop    
	...

5f587ab0 <_fprintf>:
5f587ab0:	ff 25 b8 02 59 5f    	jmp    *0x5f5902b8
5f587ab6:	90                   	nop    
5f587ab7:	90                   	nop    
	...

5f587ac0 <_GetAtomNameA@12>:
5f587ac0:	ff 25 94 02 59 5f    	jmp    *0x5f590294
5f587ac6:	90                   	nop    
5f587ac7:	90                   	nop    
	...

5f587ad0 <_FindAtomA@4>:
5f587ad0:	ff 25 90 02 59 5f    	jmp    *0x5f590290
5f587ad6:	90                   	nop    
5f587ad7:	90                   	nop    
	...

5f587ae0 <_AddAtomA@4>:
5f587ae0:	ff 25 8c 02 59 5f    	jmp    *0x5f59028c
5f587ae6:	90                   	nop    
5f587ae7:	90                   	nop    
	...

5f587af0 <___sjlj_init_ctor>:
5f587af0:	55                   	push   %ebp
5f587af1:	89 e5                	mov    %esp,%ebp
5f587af3:	5d                   	pop    %ebp
5f587af4:	e9 c7 96 ff ff       	jmp    5f5811c0 <___do_sjlj_init>
5f587af9:	90                   	nop    
5f587afa:	90                   	nop    
5f587afb:	90                   	nop    
5f587afc:	90                   	nop    
5f587afd:	90                   	nop    
5f587afe:	90                   	nop    
5f587aff:	90                   	nop    

5f587b00 <__CTOR_LIST__>:
5f587b00:	ff                   	(bad)  
5f587b01:	ff                   	(bad)  
5f587b02:	ff                   	(bad)  
5f587b03:	ff b0 37 58 5f 50    	pushl  0x505f5837(%eax)

5f587b04 <.ctors>:
5f587b04:	b0 37                	mov    $0x37,%al
5f587b06:	58                   	pop    %eax
5f587b07:	5f                   	pop    %edi

5f587b08 <.ctors>:
5f587b08:	50                   	push   %eax
5f587b09:	46                   	inc    %esi
5f587b0a:	58                   	pop    %eax
5f587b0b:	5f                   	pop    %edi

5f587b0c <.ctors>:
5f587b0c:	f0 7a 58             	lock jp 5f587b67 <__DTOR_LIST__+0x53>
5f587b0f:	5f                   	pop    %edi
5f587b10:	00 00                	add    %al,(%eax)
	...

5f587b14 <__DTOR_LIST__>:
5f587b14:	ff                   	(bad)  
5f587b15:	ff                   	(bad)  
5f587b16:	ff                   	(bad)  
5f587b17:	ff 00                	incl   (%eax)
5f587b19:	00 00                	add    %al,(%eax)
	...
