Function at 0x1003f900
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x1007f66a
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10097060]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov ebp, ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x597dc]
cmp ecx, 2
je 0x1003f958
xor eax, eax
mov dword [ebp + 0x90], eax
mov dword [ebp + 0x94], eax
xor eax, eax
jmp 0x10041013
mov ebx, dword [eax + 0x59774]
xor esi, esi
cmp ebx, esi
je 0x1003f951
mov eax, ebp
call fcn.10001990
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x597e0]
cmp eax, 4
jne 0x1003f993
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.1001be00
push ebp
call fcn.10004230
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x597b0], esi
ja 0x1003f9e3
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov dword [ebx + 0xfc], esi
mov eax, dword [ebp + 0x14]
add eax, 0x597e8
lea ebx, [esp + 0x38]
mov dword [esp + 0x38], 2
call fcn.100053d0
mov dword [eax], esi
mov dword [ebp + 0x38], esi
jmp 0x1004100e
cmp dword [ebx + 0xa4], esi
jne 0x1004100e
cmp dword [ebx + 0xa8], esi
jne 0x1004100e
add eax, 0x597a8
cmp dword [eax + 8], esi
mov dword [esp + 0x30], eax
jne 0x1003fa14
push ebx
call fcn.10004080
jmp 0x1004100e
call fcn.100052e0
mov esi, eax
mov dword [esp + 0x34], esi
call fcn.1005a620
fld dword [esi + 0xc]
fstp dword [esp + 0x60]
lea eax, [esp + 0x48]
fld dword [esi + 8]
lea ecx, [esp + 0x5c]
fstp dword [esp + 0x5c]
fld dword [esi + 0x10]
fstp dword [esp + 0x64]
fld dword [esi + 0x14]
fstp dword [esp + 0x68]
fld dword [ebx + 0x24]
fstp dword [esp + 0x4c]
fld dword [ebx + 0x20]
fstp dword [esp + 0x48]
fld dword [ebx + 0x28]
fstp dword [esp + 0x50]
fld dword [ebx + 0x2c]
fstp dword [esp + 0x54]
call fcn.10023f00
fst qword [esp + 0x3c]
fcomp qword [0x1008b750]
fnstsw ax
test ah, 5
jp 0x1003fb0c
fld dword [esp + 0x5c]
sub esp, 0x10
fsub dword [esp + 0x58]
fstp qword [esp + 8]
fld dword [esp + 0x70]
fsub dword [esp + 0x5c]
fstp qword [esp]
call fcn.10059120
fstp dword [esp + 0x48]
add esp, 4
fld dword [0x1008b71c]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x44]
fstp dword [esp]
call fcn.10022b80
add esp, 0xc
test eax, eax
jne 0x1003fad6
fld dword [esp + 0x38]
push ecx
fstp dword [esp]
call fcn.10022bd0
mov edi, dword [esp + 0x34]
call fcn.10004d90
test eax, eax
jne 0x1003fb0c
mov eax, edi
call fcn.10004040
cmp eax, 0x64
jne 0x1004100e
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, edi
call fcn.1001ca30
mov eax, dword [esp + 0x30]
call fcn.10005300
jmp 0x1004100e
call fcn.10064a60
test eax, eax
mov esi, dword [esp + 0x34]
je 0x1003fb42
mov eax, esi
call fcn.10003fe0
test eax, eax
jne 0x1003fb42
mov al, 0
mov ecx, dword [0x1009a43c]
mov byte [ecx], al
mov edx, dword [ebp + 0x14]
push edx
mov eax, esi
call fcn.1001ca30
mov eax, dword [esp + 0x30]
call fcn.10005300
call fcn.10065520
test eax, eax
je 0x1003fb5c
mov al, 0
mov ecx, dword [0x1009a43c]
mov byte [ecx], al
add dword [ebp + 0x8c], 1
cmp dword [ebp + 0x38], 0
mov edi, 0x211
jne 0x1003fb83
fld dword [ebx + 0x24]
fstp dword [ebp + 0x28]
fld dword [ebx + 0x20]
fstp dword [ebp + 0x24]
fld dword [ebx + 0x28]
fstp dword [ebp + 0x2c]
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x38], 1
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x60]
push ecx
push eax
mov eax, ebx
call fcn.100040c0
test eax, eax
je 0x1003fc7d
fld qword [0x1008b798]
fld qword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x1003fbdd
fld dword [esp + 0x60]
mov dword [ebp + 0x34], edi
fld dword [esp + 0x4c]
mov dword [ebp + 0x38], 1
fsubr st(1)
fdiv st(2)
fsubp st(1)
fstp dword [ebp + 0x28]
fld dword [esp + 0x5c]
fld dword [esp + 0x48]
fsubr st(1)
fdivrp st(2)
fsubrp st(1)
fstp dword [ebp + 0x24]
jmp 0x1003fbdf
fstp st(0)
fld dword [esp + 0x5c]
sub esp, 0x10
fsub dword [esp + 0x58]
fstp qword [esp + 8]
fld dword [esp + 0x70]
fsub dword [esp + 0x5c]
fstp qword [esp]
call fcn.10059120
fstp dword [esp + 0x48]
add esp, 4
fld dword [0x1008b7e8]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x44]
fstp dword [esp]
call fcn.10022b80
add esp, 0xc
test eax, eax
jne 0x1003fc3d
push ebx
call fcn.10004080
fld dword [esp + 0x38]
push ecx
fstp dword [esp]
call fcn.10022bd0
mov edx, dword [ebp + 0x34]
lea eax, [ebp + 0x24]
mov ecx, 1
mov esi, ebx
call fcn.1004a2f0
cmp eax, 2
jne 0x1003fc6f
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x38]
call fcn.1001ca30
mov eax, dword [esp + 0x30]
call fcn.10005300
jmp 0x1003fd04
cmp eax, 1
jne 0x1003fd0b
jmp 0x1003fd04
fld dword [esi + 0xc]
fstp dword [esp + 0x74]
mov edx, dword [esp + 0x74]
fld dword [esi + 8]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x80]
fstp dword [esp + 0x70]
fld dword [esi + 0x10]
mov ecx, dword [esp + 0x70]
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
fld dword [esi + 0x14]
mov dword [esp + 0x5c], ecx
fstp dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
fld dword [ebx + 0x24]
mov dword [esp + 0x64], eax
fstp dword [esp + 0x4c]
mov dword [esp + 0x68], ecx
fld dword [ebx + 0x20]
lea eax, [esp + 0x48]
fstp dword [esp + 0x48]
lea ecx, [esp + 0x5c]
fld dword [ebx + 0x28]
mov dword [esp + 0x6c], edx
fstp dword [esp + 0x50]
fld dword [ebx + 0x2c]
fstp dword [esp + 0x54]
call fcn.10023f00
fcomp qword [0x1008b798]
fnstsw ax
test ah, 5
jp 0x10040fa7
push ebx
call fcn.10004080
mov dword [ebp + 0x38], 0
fld dword [esp + 0x5c]
sub esp, 0x10
fsub dword [esp + 0x58]
fstp qword [esp + 8]
fld dword [esp + 0x70]
fsub dword [esp + 0x5c]
fstp qword [esp]
call fcn.10059120
fstp dword [esp + 0x48]
add esp, 4
fld dword [0x1008b7e8]
fstp dword [esp + 8]
fld dword [esp + 0x60]
fstp dword [esp + 4]
fld dword [esp + 0x44]
fstp dword [esp]
call fcn.10022b80
add esp, 0xc
test eax, eax
jne 0x1003fd69
push ebx
call fcn.10004080
fld dword [esp + 0x38]
push ecx
fstp dword [esp]
call fcn.10022bd0
push 0x11
call fcn.1004b2a0
test eax, eax
je 0x1003fd9e
mov eax, dword [ebp + 0x14]
mov edx, dword [ebx]
add eax, 0x18
push eax
mov eax, dword [edx + 0x38]
mov ecx, ebx
call eax
test eax, eax
je 0x1003fd9e
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
jle 0x1003fd9e
mov edx, dword [ebx]
mov eax, dword [edx + 0x58]
mov ecx, ebx
call eax
push 0x12
call fcn.1004b2a0
test eax, eax
je 0x1003fdd3
mov eax, dword [ebp + 0x14]
mov edx, dword [ebx]
add eax, 0x18
push eax
mov eax, dword [edx + 0x3c]
mov ecx, ebx
call eax
test eax, eax
je 0x1003fdd3
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
mov ecx, ebx
call eax
test eax, eax
jle 0x1003fdd3
mov edx, dword [ebx]
mov eax, dword [edx + 0x5c]
mov ecx, ebx
call eax
push 0x19
call fcn.1004b2a0
test eax, eax
je 0x1003fdf8
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x19
mov ecx, ebx
call eax
test eax, eax
jle 0x1003fdf8
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x19
mov ecx, ebx
call eax
push 0x1a
call fcn.1004b2a0
test eax, eax
je 0x1003fe1d
mov edx, dword [ebx]
mov eax, dword [edx + 0x54]
push 0x1a
mov ecx, ebx
call eax
test eax, eax
jle 0x1003fe1d
mov edx, dword [ebx]
mov eax, dword [edx + 0x64]
push 0x1a
mov ecx, ebx
call eax
fld qword [0x1008b758]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 1
jne 0x10040fa3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x3c]
cmp eax, 0x1f4
jbe 0x10040fa3
mov eax, ebx
call fcn.100040a0
cmp eax, 0x14
jae 0x1004001a
cmp eax, 0xa
jae 0x1003feed
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a724
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
lea ecx, [ebp + 0x68]
mov dword [esp + 0xc4], 0
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov edi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test edi, edi
je 0x1003feed
cmp dword [edi + 0x14], 0
jne 0x1003feed
mov esi, dword [edi]
call fcn.10064990
test eax, eax
je 0x1003feed
call fcn.1004ad60
mov ecx, dword [edi]
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
push ecx
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1004100e
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a618
call fcn.10001a30
lea edx, [esp + 0x38]
lea ecx, [ebp + 0x68]
push edx
mov dword [esp + 0xc4], 1
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x1003ff93
cmp dword [esi + 0x14], 0
jne 0x1003ff93
mov esi, dword [esi]
call fcn.10064990
test eax, eax
je 0x1003ff93
mov edi, 0x64ab
mov eax, ebx
call fcn.1004a9c0
test eax, eax
jne 0x1003ff93
call fcn.1004ad60
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
push edx
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1004100e
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a620
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
lea ecx, [ebp + 0x68]
mov dword [esp + 0xc4], 2
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x1004001a
cmp dword [esi + 0x14], 0
jne 0x1004001a
mov esi, dword [esi]
call fcn.10064990
test eax, eax
je 0x1004001a
mov edi, 0x64ab
mov eax, ebx
call fcn.1004a9c0
test eax, eax
je 0x1003ff75
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x354], 0
je 0x100400dc
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a628
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
lea ecx, [ebp + 0x68]
mov dword [esp + 0xc4], 3
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040171
cmp dword [esi + 0x14], 0
jne 0x10040171
mov esi, dword [esi]
call fcn.10064990
test eax, eax
je 0x10040171
mov eax, dword [esp + 0x30]
mov edi, dword [eax]
mov eax, ebx
call fcn.1004a950
test eax, eax
jne 0x10040171
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
jmp 0x1004100e
cmp dword [eax + 0x358], 0
je 0x10040171
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a634
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
lea ecx, [ebp + 0x68]
mov dword [esp + 0xc4], 4
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040171
cmp dword [esi + 0x14], 0
jne 0x10040171
mov esi, dword [esi]
call fcn.10064990
test eax, eax
je 0x10040171
mov edx, dword [esp + 0x30]
mov edi, dword [edx]
mov eax, ebx
call fcn.1004a950
test eax, eax
je 0x1003ff75
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a640
call fcn.10001a30
lea edx, [esp + 0x38]
lea edi, [ebp + 0x68]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 5
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x100401f8
mov eax, ebx
call fcn.1002a730
cmp eax, 0xf
jbe 0x100401f8
cmp dword [esi + 0x14], 0
jne 0x100401f8
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
jne 0x100400be
mov eax, ebx
call fcn.1004aa20
test eax, eax
je 0x10040297
push 3
mov eax, ebx
call fcn.1004e410
test eax, eax
jne 0x10040221
push 4
mov eax, ebx
call fcn.1004e410
test eax, eax
je 0x10040297
mov eax, ebx
call fcn.1002a730
cmp eax, 0xf
jbe 0x10040297
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a64c
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 6
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040297
call fcn.1004ad60
mov eax, dword [esi]
push eax
jmp 0x100400c5
fld qword [0x1008b798]
fld qword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x10040444
lea eax, [esp + 0x38]
fstp st(0)
push eax
mov ecx, 0x1008a730
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 7
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040336
cmp dword [esi + 0x14], 0
jne 0x10040336
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
je 0x10040336
mov eax, ebx
call fcn.1002a730
cmp eax, 0xa
ja 0x1003ff75
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a654
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 8
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x100403ba
cmp dword [esi + 0x14], 0
jne 0x100403ba
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x100403ba
mov eax, ebx
call fcn.1002a730
cmp eax, 0xa
ja 0x100400be
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a65c
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 9
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040440
mov edx, esi
cmp dword [edx + 0x14], 0
jne 0x10040440
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x10040440
mov eax, ebx
call fcn.1002a730
cmp eax, 0x14
ja 0x100400be
fld qword [esp + 0x3c]
fld qword [0x1008b798]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10040fa1
fcomp qword [0x1008b7e0]
fnstsw ax
test ah, 0x41
jp 0x10040469
call fcn.1002a700
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a664
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0xa
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x100404f3
mov eax, dword [esp + 0x34]
call fcn.10004040
cmp eax, 0x50
jbe 0x100404f3
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
je 0x100404f3
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], 0
je 0x10040626
lea eax, [esp + 0x38]
push eax
mov ecx, str.yW_rY
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0xb
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040593
mov eax, ebx
call fcn.1002a730
cmp eax, 0xa
jbe 0x10040593
cmp dword [esi + 0x14], 0
jne 0x10040593
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
je 0x10040593
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
push edx
mov ecx, ebx
call eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
xor eax, eax
jmp 0x10041013
mov eax, ebx
call fcn.100040a0
cmp eax, 0x3c
ja 0x10040646
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a68c
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0xc
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040646
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x10040646
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x14], 0
jne 0x10040646
cmp dword [ebx + 0x60], 3
jb 0x10040646
call fcn.1004ad60
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
mov ecx, ebx
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x3c], eax
xor eax, eax
jmp 0x10041013
lea eax, [esp + 0x38]
push eax
mov ecx, str.WQO_g
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0xd
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x100406ce
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
je 0x100406ce
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x14], 0
jne 0x100406ce
mov eax, ebx
call fcn.100040a0
cmp eax, 0x50
jb 0x10040626
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a684
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0xe
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040752
mov eax, ebx
call fcn.1002a730
cmp eax, 0xf
jbe 0x10040752
cmp dword [esi + 0x14], 0
jne 0x10040752
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
jne 0x10040573
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a6b4
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0xf
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x100407ca
cmp dword [esi + 0x14], 0
jne 0x100407ca
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
jne 0x10040626
push 0xa
mov eax, ebp
call fcn.10004c90
cmp eax, 1
mov dword [esp + 0x34], eax
jle 0x10040854
lea eax, [esp + 0x38]
push eax
mov ecx, str.ckINKN_
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x10
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040854
cmp dword [esi + 0x14], 0
jne 0x10040854
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
jne 0x10040573
lea ecx, [esp + 0x38]
push ecx
mov ecx, str.ASW_
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x11
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x100408de
mov eax, ebx
call fcn.1002a730
cmp eax, 0xa
jbe 0x100408de
cmp dword [esi + 0x14], 0
jne 0x100408de
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x100408de
cmp dword [ebx + 0x60], 3
jb 0x10040626
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a654
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x12
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040978
cmp dword [esi + 0x14], 0
jne 0x10040978
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
je 0x10040978
mov eax, ebx
call fcn.1002a730
mov esi, eax
cmp esi, 0xa
jbe 0x10040978
mov ecx, dword [ebx + 0x60]
xor eax, eax
test ecx, ecx
sete al
cmp eax, 3
jge 0x10040978
cmp esi, 0x50
jb 0x10040626
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a6d8
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x13
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov edi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], edi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test edi, edi
je 0x10040a09
mov esi, dword [edi]
call fcn.10064990
test eax, eax
je 0x10040a09
cmp dword [edi + 0x14], 0
jne 0x10040a09
mov edx, edi
mov edi, dword [edx]
mov eax, ebx
call fcn.1004a950
test eax, eax
jne 0x10040a09
mov eax, ebx
call fcn.100040a0
cmp eax, 0x50
jbe 0x10040573
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a6e4
call fcn.10001a30
lea edx, [esp + 0x38]
lea edi, [ebp + 0x68]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x14
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040a94
mov eax, ebx
call fcn.100040a0
cmp eax, 0x28
ja 0x10040a94
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x10040a94
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x14], 0
je 0x10040626
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, dword [eax + 0x384]
jb 0x10040b38
cmp dword [eax + 0x39c], 0
je 0x10040b38
lea edx, [esp + 0x38]
push edx
mov ecx, str.yW_a
call fcn.10001a30
lea eax, [esp + 0x38]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0x15
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040b38
mov eax, ebx
call fcn.1002a730
cmp eax, 0x14
jbe 0x10040b38
cmp dword [esi + 0x14], 0
jne 0x10040b38
mov ecx, esi
mov esi, dword [ecx]
call fcn.10064990
test eax, eax
jne 0x10040626
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, dword [eax + 0x384]
jb 0x10040bdc
cmp dword [eax + 0x398], 0
je 0x10040bdc
lea edx, [esp + 0x38]
push edx
mov ecx, str.IY.s
call fcn.10001a30
lea eax, [esp + 0x38]
push eax
mov ecx, edi
mov dword [esp + 0xc4], 0x16
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040bdc
mov eax, ebx
call fcn.1002a730
cmp eax, 0x28
jbe 0x10040bdc
cmp dword [esi + 0x14], 0
jne 0x10040bdc
mov ecx, esi
mov esi, dword [ecx]
call fcn.10064990
test eax, eax
jne 0x10040626
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a730
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x17
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040c60
cmp dword [esi + 0x14], 0
jne 0x10040c60
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
je 0x10040c60
mov eax, ebx
call fcn.1002a730
cmp eax, 0x1e
ja 0x10040573
lea ecx, [esp + 0x38]
push ecx
mov ecx, str.ckIN
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x18
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040cde
cmp dword [esi + 0x14], 0
jne 0x10040cde
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x10040cde
cmp dword [ebx + 0x60], 3
jae 0x10040626
cmp dword [esp + 0x34], 2
jl 0x10040d6d
lea eax, [esp + 0x38]
push eax
mov ecx, 0x1008a700
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x19
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040d6d
cmp dword [esi + 0x14], 0
jne 0x10040d6d
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
je 0x10040d6d
mov eax, ebx
call fcn.1002a730
cmp eax, 0x14
ja 0x10040573
mov eax, ebx
call fcn.100040a0
cmp eax, 0x3c
jae 0x10040e15
mov eax, ebx
call fcn.1002a730
cmp eax, 0x12
jbe 0x10040e15
lea ecx, [esp + 0x38]
push ecx
mov ecx, str.WIQs
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x1a
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040e15
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x10040e15
mov eax, dword [esp + 0x30]
call fcn.1002a6c0
test eax, eax
jne 0x10040e15
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x14], eax
je 0x10040621
lea eax, [esp + 0x38]
push eax
mov ecx, str.ASW_
call fcn.10001a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x1b
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040e99
mov eax, ebx
call fcn.1002a730
cmp eax, 0xa
jbe 0x10040e99
cmp dword [esi + 0x14], 0
jne 0x10040e99
mov edx, esi
mov esi, dword [edx]
call fcn.10064990
test eax, eax
jne 0x10040573
lea ecx, [esp + 0x38]
push ecx
mov ecx, 0x1008a654
call fcn.10001a30
lea edx, [esp + 0x38]
push edx
mov ecx, edi
mov dword [esp + 0xc4], 0x1c
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x38]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040f1d
cmp dword [esi + 0x14], 0
jne 0x10040f1d
mov eax, esi
mov esi, dword [eax]
call fcn.10064990
test eax, eax
je 0x10040f1d
mov eax, ebx
call fcn.1002a730
cmp eax, 0xa
ja 0x10040626
lea eax, [esp + 0x30]
push eax
mov ecx, str.R_e
call fcn.10001a30
lea ecx, [esp + 0x30]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], 0x1d
call fcn.10005150
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.10001cb0
add eax, 0x10
mov ecx, ebp
mov dword [esi], eax
call fcn.10001590
mov esi, eax
lea eax, [esp + 0x30]
mov dword [esp + 0xc0], 0xffffffff
call fcn.1001f1f0
test esi, esi
je 0x10040fa3
mov eax, dword [esi]
mov ecx, dword [0x1009a210]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x64]
call eax
test eax, eax
jne 0x10040fa3
mov eax, esi
call fcn.1002a6e0
test eax, eax
jne 0x10040fa3
mov eax, dword [esi]
push eax
jmp 0x1004062d
fstp st(0)
xor eax, eax
jmp 0x10041013
fld dword [esp + 0x74]
lea eax, [ebp + 0x24]
fld dword [esp + 0x4c]
mov ecx, 1
fsubr st(1)
mov edx, edi
fld qword [esp + 0x3c]
mov esi, ebx
mov dword [ebp + 0x34], edi
fdiv st(1), st(0)
mov dword [ebp + 0x38], ecx
fxch st(2)
fsubrp st(1)
fstp dword [ebp + 0x28]
fld dword [esp + 0x70]
fld dword [esp + 0x48]
fsubr st(1)
fdivrp st(2)
fsubrp st(1)
fstp dword [eax]
call fcn.1004a2f0
cmp eax, 2
jne 0x10041002
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x38]
call fcn.1001ca30
mov eax, dword [esp + 0x30]
call fcn.10005300
jmp 0x10041007
cmp eax, 1
jne 0x1004100e
mov dword [ebp + 0x38], 0
mov eax, 1
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 4