Function at 0x53d570
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6477aa
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1d4
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x14]
mov ebp, dword [edx + ecx*4]
mov ecx, dword [0x685160]
xor ebx, ebx
cmp ecx, ebx
push edi
mov dword [esp + 0x54], ebp
je 0x53f65b
cmp dword [eax + 0x18], ebx
je 0x5409d2
cmp byte [eax + 0x108], bl
je 0x53d5da
mov eax, dword [0x940f10]
mov ecx, dword [0x940f14]
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], ecx
mov edx, dword [ebp + 0xc]
push 1
push edx
call fcn.00578fb0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x34]
mov dword [ebp + 0x1284], ecx
add eax, 0x1c
mov edx, eax
mov edi, dword [edx]
lea ecx, [ebp + 0x1278]
mov dword [esp + 0x84], ecx
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi]
add esp, 8
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.00529310
mov ecx, dword [esi]
call fcn.005276a0
mov ecx, dword [esi]
mov edx, dword [ecx + 0x7c]
push edx
mov byte [esp + 0x23], bl
call fcn.00573e9a
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x1f8]
mov ecx, dword [0x940f30]
add esp, 4
cmp eax, ebx
mov eax, dword [0x940f34]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x34], ebx
je 0x53d6b0
cmp ecx, ebx
je 0x53d6b4
cmp eax, ebx
jne 0x53d6b0
cmp dword [0x940f24], ebx
jne 0x53d6b0
mov dword [0x8bd3b0], 1
jmp 0x53d6be
cmp ecx, ebx
jne 0x53d6be
cmp eax, ebx
je 0x53d6be
mov dword [0x8bd3b0], ebx
cmp dword [ebp + 0x13ac], ebx
je 0x53d6e4
lea eax, [esp + 0xe0]
push eax
call dword [0x8bd2d8]
add esp, 4
test eax, eax
jne 0x53d6e4
mov ecx, dword [esi]
mov dword [ecx + 4], 1
cmp dword [esp + 0x1f8], ebx
jne 0x53d760
cmp dword [esp + 0x1f4], ebx
je 0x53d760
mov edi, dword [esi]
cmp dword [edi + 0xdc], ebx
je 0x53d760
cmp dword [0x940f30], ebx
je 0x53d760
fild dword [edi + 0xdc]
fstp dword [esp + 0xd8]
fld dword [esp + 0x24]
fmul dword [0x64fe7c]
fsubr dword [esp + 0xd8]
call fcn.0061672c
mov dword [edi + 0xdc], eax
mov eax, dword [esi]
cmp dword [eax + 0xdc], ebx
jge 0x53d760
push 1
mov dword [eax + 0xdc], ebx
call dword [0x8bd2dc]
mov edx, dword [esi]
mov dword [edx + 0x90], ebx
mov eax, dword [esi]
add esp, 4
mov dword [eax + 0x94], 0xffffffff
cmp dword [ebp + 0x13a4], ebx
je 0x53d92b
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00578b40
mov edx, dword [ebp + 0xc]
push 8
push edx
mov edi, eax
call fcn.00578a40
add esp, 0xc
cmp eax, ebx
je 0x53d79e
cmp dword [ebp + 0x13a8], ebx
jne 0x53d79e
mov eax, 1
mov dword [ebp + 0x13a8], eax
jmp 0x53d7a3
mov eax, 1
cmp edi, 4
jne 0x53d7c5
mov dword [ebp + 0x1560], ebx
mov dword [ebp + 0x1570], eax
mov dword [ebp + 0x1564], ebx
mov dword [ebp + 0x1574], eax
jmp 0x53d93d
cmp edi, 2
je 0x53d7d7
cmp edi, ebx
je 0x53d7d7
cmp edi, 5
jne 0x53d92b
cmp dword [ebp + 0x13a8], ebx
je 0x53d8eb
cmp dword [ebp + 0x13a4], ebx
je 0x53d815
cmp edi, 5
je 0x53d815
mov eax, dword [esp + 0x7c]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [esi]
push 0xc8
call fcn.005276b0
xor eax, eax
lea edx, [ebp + 0x13b8]
mov dword [edx], eax
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [ebp + 0x13a4], ebx
mov dword [ebp + 0x13a8], ebx
mov dword [ebp + 0x1570], ebx
mov dword [ebp + 0x1574], ebx
mov dword [edx + 8], ebx
mov dword [0x8bd340], 0x3c23d70a
cmp dword [ebp + 0x1568], 0x23
je 0x53d92b
mov ax, word [ebp + 0x123e]
cmp ax, 2
je 0x53d8a6
cmp ax, 7
je 0x53d8a6
cmp ax, 0x18
je 0x53d8a6
push 0x25
push 0x25
mov ecx, ebp
call fcn.00530670
mov eax, dword [esp + 0x7c]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x1284]
push ecx
push 0x25
mov dword [ebp + 0x126c], ebx
push 0x25
jmp 0x53d924
push 0x20
call fcn.00526f60
add esp, 4
test al, al
jne 0x53d92b
push 0x25
push 0x25
mov ecx, ebp
call fcn.00530670
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov eax, dword [ebp + 0x1284]
push eax
push 0x25
mov dword [ebp + 0x126c], ebx
push 0x25
jmp 0x53d924
cmp word [ebp + 0x123e], 0x14
jne 0x53d92b
push 0x34
push 0x34
mov ecx, ebp
call fcn.00530670
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [ebp + 0x1284]
push edx
push 0x34
push 0x34
mov ecx, dword [esi]
call fcn.00527650
mov ecx, ebp
call fcn.00530ce0
mov eax, dword [0x8bd2e4]
cmp eax, ebx
je 0x53d93d
call eax
cmp dword [ebp + 0x13ac], ebx
je 0x53d9d4
lea eax, [esp + 0xe0]
push eax
call dword [0x8bd2d8]
add esp, 4
test eax, eax
je 0x53d9d4
push ebx
mov byte [esp + 0x23], 1
call dword [0x8bd2f4]
push ebx
call dword [0x8bd2f8]
push ebx
call dword [0x8bd2fc]
push ebx
call dword [0x8bd300]
push ebx
call dword [0x8bd304]
add esp, 0x14
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebp
mov dword [esp + 0x1fc], ebx
call fcn.00531d10
test eax, eax
je 0x53d9d4
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov eax, dword [ebp + 0x1568]
mov dword [edx + 8], ecx
mov edx, dword [ebp + 0x1284]
mov ecx, dword [ebp + 0x156c]
push edx
push eax
push ecx
mov ecx, dword [esi]
call fcn.00527650
cmp dword [esp + 0x1f8], ebx
jne 0x53e80e
cmp dword [esp + 0x1f4], ebx
je 0x53e80e
cmp dword [ebp + 0x1558], ebx
jne 0x53e80e
mov edx, dword [ebp + 0xc]
push edx
call fcn.00578b40
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [esp + 0xfc]
push ecx
call fcn.00578fd0
mov edx, dword [esp + 0x20c]
mov eax, dword [esp + 0x208]
push edx
push eax
call fcn.00579c70
add esp, 0x14
cmp eax, ebx
je 0x53da40
mov ecx, dword [esi]
push eax
call fcn.00529410
mov edi, eax
mov dword [esp + 0x44], edi
jmp 0x53da44
mov edi, dword [esp + 0x44]
mov eax, dword [0x8bd2d4]
cmp eax, ebx
je 0x53da83
push 1
call eax
add esp, 4
test eax, eax
je 0x53da83
lea ecx, [esp + 0xd8]
push ecx
call dword [0x8bd2d8]
mov eax, dword [esp + 0xdc]
add esp, 4
cmp eax, 0xffffffff
je 0x53da83
mov ecx, dword [esi]
push eax
call fcn.00528740
mov edi, eax
mov dword [esp + 0x44], edi
cmp edi, ebx
je 0x53dc85
cmp dword [0x68516c], 0xffffffff
mov dword [esp + 0x98], 1
jne 0x53dac6
mov eax, dword [edi + 0x1288]
mov edx, dword [esi]
mov dword [edx + 0x88], eax
mov eax, dword [0x8bd2d0]
cmp eax, ebx
je 0x53dac6
mov ecx, dword [esi]
add ecx, 0x88
push 1
push ecx
call eax
add esp, 8
cmp dword [0x8bd3ac], ebx
mov edi, 0x42c80000
je 0x53dba1
cmp dword [0x940f30], ebx
je 0x53dba1
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x1288]
cmp eax, 0xffffffff
je 0x53dba1
cmp dword [ebp + 0x1288], eax
je 0x53dba1
mov ecx, edx
call fcn.00439d60
mov ecx, dword [eax]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x90], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x90]
mov dword [esp + 0x98], eax
push edx
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x20]
mov dword [esp + 0xa4], eax
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.00573b9e
fld dword [esp + 0x2c]
add esp, 0x18
call fcn.0061672c
fld dword [esp + 0x10]
push eax
call fcn.0061672c
push eax
mov ecx, 0x940f08
call fcn.0044ce30
cmp dword [0x8bd3a8], ebx
je 0x53dc9a
cmp dword [0x940f3c], ebx
je 0x53dc9a
mov eax, dword [0x68516c]
cmp eax, 0xffffffff
je 0x53dc9a
mov ecx, dword [esi]
push eax
call fcn.00528740
cmp eax, ebx
mov dword [esp + 0x34], eax
je 0x53dc9a
mov ecx, eax
call fcn.00439d60
mov ecx, dword [eax]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x90], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x90]
mov dword [esp + 0x98], eax
push edx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0xf0]
push ecx
lea edx, [esp + 0xac]
mov dword [esp + 0xa4], eax
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.00573b9e
fld dword [esp + 0xb8]
add esp, 0x18
call fcn.0061672c
fld dword [esp + 0x9c]
push eax
call fcn.0061672c
push eax
mov ecx, 0x940f08
call fcn.0044ce30
jmp 0x53dc9a
mov ecx, dword [0x68516c]
or eax, 0xffffffff
cmp ecx, eax
jne 0x53dc9a
mov ecx, dword [esi]
mov dword [ecx + 0x88], eax
mov eax, dword [0x8bd2d4]
cmp eax, ebx
je 0x53de11
push 1
call eax
add esp, 4
test eax, eax
je 0x53de7d
push ebx
mov dword [0x8bd3a8], 1
call dword [0x8bd2dc]
mov edx, dword [esi]
mov dword [edx + 0x90], ebx
mov eax, dword [esi]
or edi, 0xffffffff
mov dword [eax + 0x94], edi
mov eax, dword [esp + 0x48]
add esp, 4
cmp eax, ebx
mov byte [esp + 0x1f], 1
mov dword [0x685168], edi
je 0x53dd56
mov ecx, eax
mov ecx, dword [ecx + 0x1288]
mov dword [0x68516c], ecx
mov eax, dword [esi]
cmp ecx, dword [eax + 0xe0]
je 0x53dd16
mov byte [eax + 0xe4], bl
mov edx, dword [esi]
mov dword [edx + 0xe0], edi
mov eax, dword [0x8bd2d0]
cmp eax, ebx
je 0x53dd2a
push ebx
push 0x68516c
call eax
add esp, 8
mov eax, dword [0x68516c]
cmp eax, edi
je 0x53de14
mov ecx, dword [esi]
push eax
call fcn.00528740
cmp eax, ebx
mov dword [esp + 0x34], eax
jne 0x53de14
mov dword [0x68516c], edi
jmp 0x53de14
mov dword [0x68516c], edi
mov ecx, dword [esi]
mov byte [ecx + 0xe4], bl
mov edx, dword [esi]
push 0x388
mov ecx, 0xb21d88
mov dword [edx + 0xe0], edi
call fcn.0057d900
mov dword [esp + 0x20], eax
cmp eax, ebx
mov dword [esp + 0x1ec], ebx
je 0x53dd95
mov ecx, eax
call fcn.00584210
mov edi, eax
jmp 0x53dd97
xor edi, edi
push edi
mov dword [esp + 0x1f0], 0xffffffff
call fcn.00578ac0
mov eax, dword [esp + 0x204]
mov ecx, dword [esp + 0x200]
push eax
push ecx
lea edx, [esp + 0x7c]
push edx
call fcn.0057ae70
add esp, 0x10
push 1
push 0x65f1a0
mov ecx, edi
call fcn.0058b7a0
fld dword [esp + 0x74]
mov eax, dword [esp + 0x78]
fadd dword [0x657fc0]
push eax
push ecx
mov ecx, dword [esp + 0x78]
fstp dword [esp]
push ecx
mov ecx, edi
call fcn.00583a00
fld dword [esp + 0x74]
mov edx, dword [esp + 0x78]
fadd dword [0x657fc0]
mov eax, dword [esp + 0x70]
push edx
push ecx
fstp dword [esp]
push eax
mov ecx, edi
call fcn.00582550
or edi, 0xffffffff
mov ecx, 0x940f08
call fcn.00402e20
test eax, eax
je 0x53e074
mov edx, dword [esi]
mov dword [edx + 0x90], ebx
mov eax, dword [esi]
push ebx
mov dword [0x8bd3ac], 1
mov byte [esp + 0x23], 1
mov dword [eax + 0x94], edi
call dword [0x8bd2dc]
mov eax, dword [esp + 0x48]
add esp, 4
cmp eax, ebx
je 0x53df70
mov eax, dword [esi]
cmp dword [eax + 0x4c], ebx
je 0x53df16
mov byte [eax + 0xe4], bl
mov ecx, dword [esi]
mov dword [ecx + 0xe0], edi
mov ecx, dword [esp + 0x44]
jmp 0x53df59
mov eax, dword [0x8bd2d4]
cmp eax, ebx
je 0x53de11
push ebx
call eax
add esp, 4
test eax, eax
je 0x53de11
push ebx
mov dword [0x8bd3a8], ebx
call dword [0x8bd2dc]
mov ecx, dword [esi]
mov dword [ecx + 0x90], ebx
mov edx, dword [esi]
or edi, 0xffffffff
mov dword [edx + 0x94], edi
mov eax, dword [esi]
mov cl, byte [eax + 0xe4]
add esp, 4
cmp cl, bl
mov byte [esp + 0x1f], 1
je 0x53df0b
mov ecx, dword [0x68516c]
cmp ecx, edi
je 0x53ded4
mov dword [0x685168], ecx
mov byte [eax + 0xf4], bl
call dword [0x8bd308]
test eax, eax
je 0x53defd
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov dword [0x8bd3a4], ebx
mov dword [0x68516c], edi
jmp 0x53de14
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
mov dword [0x8bd3a4], ebx
mov dword [0x68516c], edi
jmp 0x53de14
mov ecx, dword [esp + 0x44]
test dword [ecx + 0x13c4], 0x10000
jne 0x53df4b
mov edx, dword [ebp + 0x1288]
cmp edx, dword [ecx + 0x1288]
je 0x53df4b
mov byte [eax + 0xe4], 1
mov eax, dword [esi]
mov edx, dword [ecx + 0x1288]
mov dword [eax + 0xe0], edx
jmp 0x53df59
mov byte [eax + 0xe4], bl
mov eax, dword [esi]
mov dword [eax + 0xe0], edi
mov ecx, dword [ecx + 0x1288]
mov dword [0x685168], ecx
mov dword [0x68516c], edi
jmp 0x53e0a0
mov edx, dword [esp + 0x200]
mov eax, dword [esp + 0x1fc]
push edx
push eax
call fcn.00578a10
mov ecx, dword [esi]
mov dword [ecx + 0xd4], eax
mov dword [0x68516c], edi
mov edx, dword [esi]
mov byte [edx + 0xe4], bl
mov eax, dword [esi]
mov dword [eax + 0xe0], edi
mov eax, dword [esi]
mov ecx, dword [eax + 0xd4]
add esp, 8
cmp ecx, edi
mov dword [0x685168], edi
jne 0x53e0d4
push 0x388
mov ecx, 0xb21d88
mov dword [eax + 0xdc], 0xbb8
call fcn.0057d900
mov dword [esp + 0x20], eax
cmp eax, ebx
mov dword [esp + 0x1ec], 1
je 0x53dff3
mov ecx, eax
call fcn.00584210
mov edi, eax
jmp 0x53dff5
xor edi, edi
push edi
mov dword [esp + 0x1f0], 0xffffffff
call fcn.00578ac0
mov ecx, dword [esp + 0x204]
mov edx, dword [esp + 0x200]
push ecx
push edx
lea eax, [esp + 0x7c]
push eax
call fcn.0057ae70
add esp, 0x10
push 1
push 0x65f1a0
mov ecx, edi
call fcn.0058b7a0
fld dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
fadd dword [0x657fc0]
mov edx, dword [esp + 0x70]
push ecx
push ecx
fstp dword [esp]
push edx
mov ecx, edi
call fcn.00583a00
fld dword [esp + 0x74]
mov eax, dword [esp + 0x78]
fadd dword [0x657fc0]
push eax
push ecx
mov ecx, dword [esp + 0x78]
fstp dword [esp]
push ecx
mov ecx, edi
call fcn.00582550
or edi, 0xffffffff
jmp 0x53e0a6
mov ecx, 0x940f08
call fcn.00402dc0
test eax, eax
je 0x53e08a
mov dword [0x8bd3ac], ebx
jmp 0x53e0a0
cmp dword [0x940f30], ebx
je 0x53e0a0
mov eax, dword [0x68516c]
cmp eax, edi
je 0x53e0a0
mov dword [0x685168], eax
cmp dword [esp + 0x44], ebx
jne 0x53e0d4
mov eax, dword [0x685168]
cmp eax, edi
je 0x53e0d4
mov ecx, dword [esi]
mov edx, eax
push edx
call fcn.00528740
cmp eax, ebx
mov dword [esp + 0x44], eax
je 0x53e0ce
mov dword [esp + 0x98], 1
jmp 0x53e0d4
mov dword [0x685168], edi
cmp dword [esp + 0x34], ebx
jne 0x53e0f9
mov eax, dword [0x68516c]
cmp eax, edi
je 0x53e0f9
mov ecx, dword [esi]
push eax
call fcn.00528740
cmp eax, ebx
mov dword [esp + 0x34], eax
jne 0x53e0f9
mov dword [0x68516c], edi
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x53e128
cmp dword [eax + 0x1558], ebx
jne 0x53e117
mov eax, dword [eax + 0x1288]
cmp eax, dword [ebp + 0x1288]
jne 0x53e128
mov dword [0x685168], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x98], ebx
mov ecx, dword [esi]
cmp byte [ecx + 0xe4], bl
je 0x53e17d
mov edx, dword [ecx + 0xe0]
push edx
call fcn.00528740
cmp eax, ebx
je 0x53e15c
cmp dword [eax + 0x1558], ebx
je 0x53e16c
mov eax, dword [esi]
mov byte [eax + 0xe4], bl
mov ecx, dword [esi]
mov dword [ecx + 0xe0], edi
jmp 0x53e16c
mov edx, dword [esi]
mov byte [edx + 0xe4], bl
mov eax, dword [esi]
mov dword [eax + 0xe0], edi
mov ecx, dword [esi]
mov eax, dword [ecx + 0xe0]
cmp eax, edi
je 0x53e17d
mov dword [0x685168], eax
cmp dword [0x8bd3b0], ebx
je 0x53e195
cmp dword [0x940f30], ebx
je 0x53e195
cmp dword [0x8bd3ac], ebx
jne 0x53e1c7
cmp dword [0x940f3c], ebx
je 0x53e1a5
cmp dword [0x8bd3a8], ebx
jne 0x53e1c7
mov eax, dword [0x8bd2d8]
cmp eax, ebx
je 0x53e80e
lea edx, [esp + 0xdc]
push edx
call eax
add esp, 4
test eax, eax
je 0x53e80e
cmp dword [0x8bd3b0], ebx
je 0x53e1df
cmp dword [0x940f30], ebx
je 0x53e1df
cmp dword [0x8bd3ac], ebx
jne 0x53e1f7
cmp dword [0x940f3c], ebx
je 0x53e4a9
cmp dword [0x8bd3a8], ebx
je 0x53e4a9
mov eax, dword [0x9411dc]
mov ecx, dword [0x9411d8]
mov edx, dword [esp + 0x200]
push eax
mov eax, dword [esp + 0x200]
push ecx
push edx
push eax
call fcn.00579070
mov ecx, dword [0xb1cb3c]
mov edi, dword [0xb1cb34]
mov ebp, dword [0xb1cb38]
push 0xb21c64
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ecx
mov dword [esp + 0x3c], 0x49742400
call fcn.005353f0
push eax
lea ecx, [esp + 0x90]
push 0xb1cb34
push ecx
call fcn.0044cdb0
add esp, 0x28
push fcn.00525130
push 4
push 0xc
lea edx, [esp + 0xb4]
push edx
call fcn.00401000
mov eax, 0xc9742400
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x50]
push edx
mov dword [esp + 0x20], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xb4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xb8], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x38]
mov dword [esp + 0xc0], eax
push edx
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x28], 0x49742400
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0xc9742400
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xd0], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x44]
mov dword [esp + 0xd8], eax
push edx
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x34], 0xc9742400
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 0x49742400
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xec], eax
mov eax, 0x49742400
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x50]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
push edx
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x44], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xfc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x100], edx
mov eax, dword [eax + 8]
add esp, 0x30
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xdc], eax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x80]
sub esp, 0xc
mov edx, esp
mov dword [edx], edi
mov dword [edx + 4], ebp
mov dword [edx + 8], eax
call fcn.00576ca6
add esp, 0x20
test eax, eax
lea ecx, [esp + 0x24]
je 0x53e426
push 0xb21c64
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.005353f0
push eax
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.0044cdb0
mov edx, dword [esi]
mov ecx, dword [eax]
add esp, 0x18
add edx, 0xe8
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
jmp 0x53e4a9
push ecx
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0xb8]
push edx
mov edx, dword [esp + 0x7c]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x80]
sub esp, 0xc
mov edx, esp
mov dword [edx], edi
mov dword [edx + 4], ebp
mov dword [edx + 8], eax
call fcn.00576ca6
add esp, 0x20
test eax, eax
je 0x53e474
lea ecx, [esp + 0x24]
jmp 0x53e3e6
mov ecx, dword [esp + 0x200]
mov edx, dword [esp + 0x1fc]
push ecx
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0057ae70
mov ecx, dword [esi]
mov edx, dword [eax]
add esp, 0xc
add ecx, 0xe8
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ebp, dword [esp + 0x44]
cmp ebp, ebx
je case.default.0x53e5a2
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x53e4d9
mov ecx, dword [esi]
add eax, 0x1c
mov edx, dword [eax]
add ecx, 0xe8
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
jmp 0x53e4f7
mov edx, dword [esi]
lea ecx, [ebp + 0x1278]
mov eax, dword [ecx]
add edx, 0xe8
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [esi]
push edx
add eax, 0xe8
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], ebx
call fcn.00418170
fstp st(0)
mov ecx, 0x940f08
call fcn.00402e20
test eax, eax
je 0x53e57d
mov eax, dword [esi]
cmp dword [eax + 0x4c], ebx
je 0x53e57d
mov byte [eax + 0xf4], bl
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov eax, dword [ebp + 0x1288]
push eax
mov dword [0x8bd3a4], ebx
mov dword [0x8bd3b0], ebx
call dword [0x8bd318]
add esp, 4
cmp eax, 2
jne 0x5409d2
mov ecx, dword [ebp + 0x1288]
push ecx
call dword [0x8bd30c]
add esp, 4
jmp 0x5409d2
cmp dword [0x940f30], ebx
je case.default.0x53e5a2
mov edx, dword [ebp + 0x1288]
push edx
call dword [0x8bd314]
add esp, 4
cmp eax, 4
ja case.default.0x53e5a2
jmp dword [eax*4 + 0x5409f0]
mov eax, dword [ebp + 0x1288]
push eax
call dword [0x8bd318]
add esp, 4
cmp eax, 2
jne 0x53e627
mov ecx, 0x940f08
call fcn.00402e20
test eax, eax
je 0x53e5de
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
xor ecx, ecx
cmp edx, ebx
setne cl
mov dword [eax + 0x8c], ecx
mov eax, dword [esi]
cmp dword [eax + 0x40], ebx
je 0x53e614
cmp dword [0x685168], 0xffffffff
je 0x53e687
mov byte [eax + 0xf4], bl
call dword [0x8bd308]
test eax, eax
je 0x53e6fa
mov edx, dword [esi]
mov byte [edx + 0xf5], 1
jmp 0x53e702
mov byte [eax + 0xf4], bl
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
jmp 0x53e702
cmp dword [0x685168], 0xffffffff
je 0x53e64f
mov eax, dword [esi]
mov byte [eax + 0xf4], bl
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
mov dword [0x8bd3a4], 1
jmp case.default.0x53e5a2
mov edx, dword [esi]
mov byte [edx + 0xf4], 1
jmp 0x53e6fa
cmp dword [0x685168], 0xffffffff
je 0x53e685
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov dword [0x8bd3a4], 1
jmp case.default.0x53e5a2
mov eax, dword [esi]
mov byte [eax + 0xf4], 1
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
jmp 0x53e702
mov ecx, 0x940f08
call fcn.00402e20
test eax, eax
je 0x53e6b8
mov eax, dword [esi]
mov ecx, dword [eax + 0x40]
xor edx, edx
cmp ecx, ebx
setne dl
mov dword [eax + 0x8c], edx
mov eax, dword [esi]
cmp dword [eax + 0x40], ebx
je 0x53e6f4
cmp dword [0x685168], 0xffffffff
je 0x53e6e3
mov byte [eax + 0xf4], bl
call dword [0x8bd308]
test eax, eax
je 0x53e68e
mov eax, dword [esi]
mov byte [eax + 0xf5], 1
jmp 0x53e702
mov byte [eax + 0xf4], 1
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
jmp 0x53e702
mov byte [eax + 0xf4], bl
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov dword [0x8bd3a4], ebx
mov edi, dword [esp + 0x34]
cmp edi, ebx
je 0x53e779
lea ecx, [esp + 0x20]
push ecx
call dword [0x8bd2d8]
add esp, 4
test eax, eax
je 0x53e779
mov edx, dword [edi + 0x1288]
push edx
call dword [0x8bd314]
add esp, 4
cmp eax, 1
je 0x53e779
cmp dword [0x68516c], 0xffffffff
mov dword [0x8bd3a4], ebx
je 0x53e762
mov eax, dword [esi]
mov byte [eax + 0xf4], bl
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
mov dword [0x8bd3a0], 1
jmp 0x53e779
mov edx, dword [esi]
mov byte [edx + 0xf4], 1
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov dword [0x8bd3a0], ebx
cmp dword [0x940f30], ebx
je 0x53e789
cmp dword [0x8bd3ac], ebx
jne 0x53e79d
cmp dword [0x940f3c], ebx
je 0x53e80e
cmp dword [0x8bd3a8], ebx
je 0x53e80e
mov ebp, dword [esp + 0x44]
cmp ebp, ebx
jne 0x53e80e
cmp dword [esp + 0x34], ebx
jne 0x53e80e
mov ecx, dword [esp + 0x7c]
mov edx, dword [esi]
push ecx
add edx, 0xe8
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x9c]
mov dword [esp + 0xa0], ebx
call fcn.00418170
fcomp dword [0x64fc90]
mov dword [0x8bd3a4], ebx
fnstsw ax
test ah, 0x41
jp 0x53e7fd
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
jmp 0x53e80e
mov eax, dword [esi]
mov byte [eax + 0xf4], 1
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
mov eax, dword [0x685168]
or ebp, 0xffffffff
cmp eax, ebp
jne 0x53e822
cmp dword [0x68516c], ebp
je 0x53e83c
push ebx
call dword [0x8bd2dc]
mov edx, dword [esi]
mov dword [edx + 0x90], ebx
mov eax, dword [esi]
add esp, 4
mov dword [eax + 0x94], ebp
cmp byte [esp + 0x1f], bl
jne 0x53ed03
mov eax, dword [0x8bd2e0]
cmp eax, ebx
je 0x53ec0a
call eax
test eax, eax
je 0x53ec0a
push ebx
call dword [0x8bd2f4]
push ebx
call dword [0x8bd2f8]
push ebx
call dword [0x8bd2fc]
push ebx
call dword [0x8bd300]
push ebx
call dword [0x8bd304]
mov eax, dword [esp + 0x208]
add esp, 0x14
cmp eax, ebx
je 0x53eb49
cmp dword [esp + 0x1f8], ebx
jne 0x53eb49
cmp dword [0x940f48], ebx
jne 0x53eb49
mov ecx, dword [0x9411dc]
mov edx, dword [0x9411d8]
mov eax, dword [esp + 0x200]
push ecx
mov ecx, dword [esp + 0x200]
push edx
push eax
push ecx
call fcn.00579070
mov edx, dword [0xb1cb3c]
mov edi, dword [0xb1cb34]
mov ebp, dword [0xb1cb38]
push 0xb21c64
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x60]
push ecx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x3c], 0x49742400
call fcn.005353f0
push eax
lea edx, [esp + 0x84]
push 0xb1cb34
push edx
call fcn.0044cdb0
add esp, 0x28
push fcn.00525130
push 4
push 0xc
lea eax, [esp + 0xb4]
push eax
call fcn.00401000
mov eax, 0xc9742400
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x20], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xb4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xb8], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x38]
mov dword [esp + 0xc0], eax
push edx
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x28], 0x49742400
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0xc9742400
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xd0], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x44]
mov dword [esp + 0xd8], eax
push edx
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x34], 0xc9742400
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 0x49742400
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xec], eax
mov eax, 0x49742400
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x50]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
push edx
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x44], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xfc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x100], edx
mov eax, dword [eax + 8]
add esp, 0x30
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0xdc], eax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x8c]
sub esp, 0xc
mov edx, esp
mov dword [edx], edi
mov dword [edx + 4], ebp
mov dword [edx + 8], eax
call fcn.00576ca6
add esp, 0x20
test eax, eax
lea ecx, [esp + 0x24]
jne 0x53eae4
push ecx
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0xb8]
push edx
mov edx, dword [esp + 0x70]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x8c]
sub esp, 0xc
mov edx, esp
mov dword [edx], edi
mov dword [edx + 4], ebp
mov dword [edx + 8], eax
call fcn.00576ca6
add esp, 0x20
test eax, eax
je 0x53eb2a
lea ecx, [esp + 0x24]
push 0xb21c64
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.005353f0
push eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.0044cdb0
mov edx, dword [esi]
mov ecx, dword [eax]
add esp, 0x18
add edx, 0xe8
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
jmp 0x53ebf0
mov ecx, dword [esp + 0x200]
mov edx, dword [esp + 0x1fc]
push ecx
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0057ae70
jmp 0x53ebd5
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + 0x1284]
mov dword [esp + 0x34], edx
fld dword [esp + 0x34]
fchs
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fsub dword [0x64ff20]
fstp dword [esp + 0x34]
mov edi, dword [esp + 0x34]
push edi
call fcn.00418130
fstp dword [esp + 0x5c]
push edi
call fcn.00418150
fstp dword [esp + 0x68]
add esp, 8
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], ebx
call fcn.004181c0
fld dword [esp + 0x58]
fmul dword [0x64fc90]
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x58]
push eax
fstp dword [esp + 0x5c]
push ecx
fld dword [esp + 0x64]
lea edx, [esp + 0x50]
fmul dword [0x64fc90]
push edx
fstp dword [esp + 0x68]
fld dword [esp + 0x6c]
fmul dword [0x64fc90]
fstp dword [esp + 0x6c]
call fcn.0044cdb0
mov ecx, dword [esi]
mov edx, dword [eax]
add esp, 0xc
add ecx, 0xe8
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [esi]
mov byte [ecx + 0xf4], 1
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov dword [0x8bd3a4], ebx
or ebp, 0xffffffff
mov ecx, dword [esi]
cmp dword [ecx + 0x90], ebx
mov edi, dword [esp + 0x54]
je 0x53ed21
mov eax, dword [ecx + 0x94]
push eax
call fcn.00528740
cmp eax, ebx
je 0x53ecdb
lea ebp, [edi + 0x1278]
push ebp
add eax, 0x1278
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], ebx
call fcn.00418170
fcomp dword [0x65f0f8]
fnstsw ax
test ah, 0x41
jne 0x53ecc2
lea ecx, [esp + 0x58]
call fcn.004181c0
fld dword [esp + 0x58]
fmul dword [0x64fe5c]
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x4c]
fstp dword [esp + 0x5c]
push ebp
fld dword [esp + 0x64]
push eax
fmul dword [0x64fe5c]
fstp dword [esp + 0x68]
fld dword [esp + 0x6c]
fmul dword [0x64fe5c]
fstp dword [esp + 0x6c]
call fcn.0044cdb0
mov ecx, dword [esi]
mov edx, dword [eax]
add esp, 0xc
add ecx, 0xe8
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [esi]
mov byte [ecx + 0xf4], 1
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov dword [0x8bd3a4], ebx
jmp 0x53ed21
mov eax, dword [esi]
mov dword [eax + 0x90], ebx
mov ecx, dword [esi]
mov dword [ecx + 0x94], ebp
mov edx, dword [esi]
mov byte [edx + 0xf4], bl
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov dword [0x8bd3a4], ebx
jmp 0x53ed21
push ebx
call dword [0x8bd2dc]
mov ecx, dword [esi]
mov edi, dword [esp + 0x58]
mov dword [ecx + 0x90], ebx
mov edx, dword [esi]
add esp, 4
mov dword [edx + 0x94], ebp
cmp dword [edi + 0x1558], ebx
jne 0x53f323
mov eax, dword [esi]
cmp byte [eax + 0xf4], bl
je 0x53ee4c
push ebx
call dword [0x8bd2f4]
push ebx
call dword [0x8bd2f8]
push ebx
call dword [0x8bd2fc]
push ebx
call dword [0x8bd300]
push ebx
call dword [0x8bd304]
mov ebp, dword [esi]
lea eax, [edi + 0x1278]
push eax
lea ecx, [ebp + 0xe8]
push ecx
lea edx, [esp + 0x64]
push edx
call fcn.0040bce0
mov ecx, dword [eax]
mov dword [esp + 0x58], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x5c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ebx
mov eax, dword [ebp + 0xd4]
add esp, 0x20
cmp eax, 0xffffffff
je 0x53edef
lea ecx, [esp + 0x38]
call fcn.00418170
fcomp dword [0x64fe6c]
fnstsw ax
test ah, 0x41
jp 0x53ee2c
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov eax, dword [0x8bd2c4]
cmp eax, ebx
mov dword [0x8bd3a4], ebx
je 0x53ede1
mov ecx, dword [esi]
mov edx, dword [ecx + 0xd4]
push edx
call eax
add esp, 4
mov eax, dword [esi]
mov dword [eax + 0xd4], 0xffffffff
jmp 0x53ee4c
mov eax, dword [0x8bd2e0]
cmp eax, ebx
je 0x53ee2c
call eax
test eax, eax
jne 0x53ee2c
lea ecx, [esp + 0x38]
call fcn.00418170
fcomp dword [0x64fc90]
fnstsw ax
test ah, 0x41
jp 0x53ee2c
mov edx, dword [esi]
mov byte [edx + 0xf4], bl
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov dword [0x8bd3a4], ebx
jmp 0x53ee4c
test dword [edi + 0x13c4], 0x3000000
jne 0x53ee4c
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esi]
call fcn.00529450
mov ecx, edi
push ebx
call fcn.00532080
mov edx, dword [esi]
cmp byte [edx + 0xf5], bl
je 0x53efea
push ebx
call dword [0x8bd2f4]
push ebx
call dword [0x8bd2f8]
push ebx
call dword [0x8bd2fc]
push ebx
call dword [0x8bd300]
push ebx
call dword [0x8bd304]
mov eax, dword [0x685168]
mov ecx, dword [esi]
add esp, 0x14
push eax
call fcn.00528740
mov ebp, eax
cmp ebp, ebx
je 0x53f155
lea eax, [edi + 0x1278]
push eax
lea ecx, [ebp + 0x1278]
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.0040bce0
mov ecx, dword [eax]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 4]
mov ecx, dword [edi + 0x1248]
mov dword [esp + 0x48], edx
mov eax, dword [eax + 8]
shl ecx, 8
lea edx, [ecx + edi + 0xe3a]
push edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebx
call dword [0x8bd2cc]
add esp, 0x10
cmp word [edi + 0x123e], 8
mov dword [esp + 0x24], 0x44e10000
jne 0x53eefb
mov dword [esp + 0x24], 0x45160000
mov ecx, dword [esi]
cmp dword [ecx + 0x40], ebx
je 0x53efca
cmp eax, 0xc
je 0x53ef10
cmp eax, 0xd
jne 0x53ef24
lea ecx, [esp + 0x38]
call fcn.00418170
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 0x41
jnp 0x53ef3e
lea ecx, [esp + 0x38]
call fcn.00418170
fcomp dword [0x64fe60]
fnstsw ax
test ah, 0x41
jp 0x53efca
mov eax, dword [ebp + 0x1288]
mov edx, dword [esi]
mov dword [edx + 0x80], eax
mov eax, dword [esi]
cmp byte [eax + 0xe4], bl
jne 0x53ef6a
mov byte [eax + 0xf4], bl
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
mov dword [0x8bd3a4], ebx
test dword [edi + 0x13c4], 0x2000000
jne 0x53efea
mov ecx, dword [esi]
lea edx, [esp + 0x38]
push edx
call fcn.00529450
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, edi
call fcn.005311b0
test eax, eax
je 0x53efea
sub esp, 0xc
mov ecx, esp
lea eax, [edi + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [edi + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [edi + 0x1284]
mov eax, dword [edi + 0x156c]
push ecx
mov ecx, dword [esi]
push edx
push eax
call fcn.00527650
jmp 0x53efea
test dword [edi + 0x13c4], 0x3000000
jne 0x53efea
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esi]
call fcn.00529450
push ebx
mov ecx, edi
call fcn.00532080
cmp dword [0x8bd3a4], ebx
je 0x53f175
push ebx
call dword [0x8bd2f4]
push ebx
call dword [0x8bd2f8]
push ebx
call dword [0x8bd2fc]
push ebx
call dword [0x8bd300]
push ebx
call dword [0x8bd304]
mov ecx, dword [0x685168]
add esp, 0x14
push ecx
mov ecx, dword [esi]
call fcn.00528740
mov ebp, eax
cmp ebp, ebx
je 0x53f155
lea eax, [edi + 0x1278]
push eax
lea edx, [ebp + 0x1278]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0040bce0
mov ecx, dword [eax]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov eax, dword [eax + 8]
add esp, 0xc
lea ecx, [esp + 0x38]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ebx
call fcn.00418170
fcomp dword [0x652fc4]
fnstsw ax
test ah, 0x41
jp 0x53f133
mov ecx, dword [ebp + 0x1288]
push ecx
call dword [0x8bd314]
add esp, 4
sub eax, ebx
je 0x53f0ce
dec eax
je 0x53f09d
sub eax, 3
jne 0x53f105
mov edx, dword [ebp + 0x1288]
push edx
call dword [0x8bd318]
add esp, 4
cmp eax, 2
je 0x53f105
mov eax, dword [esi]
mov edx, dword [0x685168]
mov dword [eax + 0xd0], 1
mov ecx, dword [esi]
mov dword [ecx + 0x84], edx
jmp 0x53f105
mov al, byte [0x940f90]
test al, al
jns 0x53f105
mov eax, dword [ebp + 0x1288]
push eax
call dword [0x8bd318]
add esp, 4
cmp eax, 2
je 0x53f105
mov ecx, dword [esi]
mov eax, dword [0x685168]
mov dword [ecx + 0xd0], 1
mov edx, dword [esi]
mov dword [edx + 0x84], eax
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
mov edx, dword [esi]
lea eax, [esp + 0x38]
mov byte [edx + 0xf5], bl
mov ecx, dword [esi]
push eax
mov dword [0x8bd3a4], ebx
mov dword [0x685168], 0xffffffff
call fcn.00529450
jmp 0x53f175
test dword [edi + 0x13c4], 0x3000000
jne 0x53f175
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esi]
call fcn.00529450
push ebx
mov ecx, edi
call fcn.00532080
jmp 0x53f175
mov edx, dword [esi]
mov byte [edx + 0xf4], bl
mov eax, dword [esi]
mov dword [0x685168], 0xffffffff
mov byte [eax + 0xf5], bl
mov dword [0x8bd3a4], ebx
cmp dword [0x8bd3a0], ebx
je 0x53f2fa
push ebx
call dword [0x8bd2f4]
push ebx
call dword [0x8bd2f8]
push ebx
call dword [0x8bd2fc]
push ebx
call dword [0x8bd300]
push ebx
call dword [0x8bd304]
mov ecx, dword [0x68516c]
add esp, 0x14
push ecx
mov ecx, dword [esi]
call fcn.00528740
cmp eax, ebx
je 0x53f2d4
lea ecx, [edi + 0x1278]
push ecx
add eax, 0x1278
push eax
lea edx, [esp + 0x50]
push edx
call fcn.0040bce0
mov ecx, dword [eax]
mov ebp, dword [esi]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov eax, dword [eax + 8]
add esp, 0xc
lea ecx, [esp + 0x38]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ebx
call fcn.00418170
fcomp dword [ebp + 0xa0]
fnstsw ax
test ah, 0x41
jp 0x53f2b2
mov byte [ebp + 0xf4], bl
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
test dword [edi + 0x13c4], 0x2000000
mov dword [0x8bd3a4], ebx
mov dword [0x8bd3a0], ebx
jne 0x53f2a6
mov ecx, dword [esi]
lea edx, [esp + 0x38]
push edx
call fcn.00529450
mov eax, dword [edi + 0xc]
push eax
call fcn.00578b40
add esp, 4
cmp eax, 5
je 0x53f2a6
cmp dword [edi + 0x139c], ebx
jne 0x53f2a6
mov eax, dword [edi + 0x1568]
cmp eax, 0x16
je 0x53f2fa
cmp eax, 0x17
je 0x53f2fa
cmp eax, 0x20
je 0x53f2fa
mov ecx, dword [esi]
mov edx, dword [0x68516c]
mov dword [ecx + 0x88], edx
mov dword [edi + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov edx, dword [esi]
mov dword [edx + 0xc], ebx
mov eax, dword [esi]
mov dword [eax + 0x10], ebx
jmp 0x53f2fa
mov dword [0x68516c], 0xffffffff
jmp 0x53f2fa
test dword [edi + 0x13c4], 0x3000000
jne 0x53f2fa
lea ecx, [esp + 0x38]
push ecx
mov ecx, ebp
call fcn.00529450
push ebx
mov ecx, edi
call fcn.00532080
jmp 0x53f2fa
mov dword [0x68516c], 0xffffffff
mov edx, dword [esi]
mov byte [edx + 0xf4], bl
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov dword [0x8bd3a4], ebx
mov dword [0x8bd3a0], ebx
mov eax, dword [esi]
cmp byte [eax + 0xf4], bl
jne 0x53f323
cmp byte [eax + 0xf5], bl
jne 0x53f323
cmp dword [0x8bd3a4], ebx
jne 0x53f323
cmp dword [0x8bd3a0], ebx
jne 0x53f323
mov ecx, edi
call fcn.00531070
mov ecx, dword [esi]
call fcn.00529780
test eax, eax
jne 0x53f33d
mov eax, dword [0x8bd2e8]
cmp eax, ebx
je 0x53f33d
push ebx
call eax
add esp, 4
lea ecx, [esp + 0x38]
call fcn.004181c0
mov eax, dword [edi + 0x1568]
push ebx
sub esp, 0xc
dec eax
mov edx, esp
je 0x53f372
sub eax, 7
je 0x53f368
xor eax, eax
mov dword [edx], eax
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ebx
jmp 0x53f3c2
mov ecx, dword [esi]
fld dword [ecx + 0x9c]
jmp 0x53f37a
mov ecx, dword [esi]
fld dword [ecx + 0x98]
fdiv dword [0x65f0fc]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fmul dword [esp + 0x50]
fstp dword [esp + 0x44]
fld dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
fmul dword [esp + 0x4c]
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
fld dword [esp + 0x34]
fmul dword [esp + 0x48]
fstp dword [esp + 0xac]
mov ebp, dword [esp + 0xac]
mov dword [edx], ebp
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov eax, dword [edi + 0xc]
push eax
call fcn.00578ae0
mov eax, dword [esp + 0xac]
add esp, 0x14
cmp eax, ebx
je 0x53f455
mov ebp, dword [esp + 0x44]
cmp ebp, ebx
je 0x53f455
cmp dword [ebp + 0xc], ebx
je 0x53f455
mov ecx, ebp
call fcn.00439d60
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x68], edx
push ecx
lea edx, [esp + 0x68]
mov dword [esp + 0x70], eax
push edx
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 0x43480000
mov dword [esp + 0x24], ebx
call fcn.0044cdb0
mov edx, dword [eax]
add esp, 0xc
push 6
push 0x43c80000
push 0xff0022ff
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00578a80
add esp, 0x1c
mov edx, dword [esp + 0x1f4]
mov ecx, dword [esi]
push edx
call fcn.00529510
mov eax, dword [esi]
mov ecx, dword [eax + 0xbc]
push ecx
call fcn.00573e9a
fcomp dword [0x64fe64]
add esp, 4
fnstsw ax
test ah, 1
jne 0x5409d2
mov eax, dword [edi + 0x1568]
cmp eax, 8
je 0x53f4e9
cmp eax, 1
je 0x53f4e9
cmp eax, 4
je 0x53f4e9
cmp eax, 5
je 0x53f4e9
cmp eax, 6
je 0x53f4e9
cmp eax, 0xa
je 0x53f4e9
cmp eax, ebx
je 0x53f4e9
cmp eax, 0x19
je 0x53f4e9
cmp eax, 0x1a
je 0x53f4e9
cmp eax, 0x29
je 0x53f4e9
cmp eax, 0x2a
je 0x53f4e9
cmp eax, 0x26
je 0x53f4e9
cmp eax, 0x28
je 0x53f4e9
cmp eax, 0x15
je 0x53f4e9
cmp eax, 0x24
je 0x53f4e9
cmp eax, 0x22
je 0x53f4e9
cmp eax, 0x23
je 0x53f4e9
cmp eax, 9
jne 0x5409d2
lea ecx, [esp + 0x38]
call fcn.004181c0
lea ecx, [esp + 0x80]
call fcn.004181c0
mov eax, dword [edi + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x53f515.2
movzx edx, byte [eax + 0x540a24]
jmp dword [edx*4 + 0x540a04]
mov eax, dword [esi]
fld dword [eax + 0x98]
jmp 0x53f588
lea eax, [esp + 0x38]
jmp 0x53f544
mov eax, dword [esi]
fld dword [eax + 0x9c]
lea edx, [esp + 0x80]
jmp 0x53f58c
lea eax, [esp + 0x80]
mov ecx, dword [esi]
fld dword [ecx + 0x9c]
lea edx, [esp + 0x20]
fdiv dword [0x64fe78]
push edx
push eax
lea ecx, [esp + 0x50]
push ecx
fchs
fstp dword [esp + 0x2c]
call fcn.00525020
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x30], edx
jmp 0x53f628
mov eax, dword [esi]
fld dword [eax + 0x9c]
lea edx, [esp + 0x38]
fdiv dword [0x64fe78]
lea ecx, [esp + 0x20]
push ecx
push edx
lea eax, [esp + 0x50]
push eax
fstp dword [esp + 0x2c]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
jmp 0x53f62c
lea ecx, [edi + 0x13b8]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
jmp 0x53f62c
mov edx, dword [esi]
fld dword [edx + 0x9c]
lea eax, [esp + 0x20]
fdiv dword [0x64fe78]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x50]
push edx
fchs
fstp dword [esp + 0x2c]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
jmp 0x53f62c
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ecx
fld dword [esp + 0x28]
fadd dword [edi + 0x1278]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fadd dword [edi + 0x127c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
fadd dword [edi + 0x1280]
fstp dword [esp + 0x30]
jmp 0x540986
mov ecx, dword [eax + 0x2c]
or edi, 0xffffffff
cmp ecx, edi
je 0x5409d2
cmp dword [eax + 0x18], ebx
je 0x5409d2
mov ecx, dword [ebp + 0xc]
push 1
push ecx
call fcn.00578fb0
mov eax, dword [ebp + 0xc]
add eax, 0x1c
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 8]
push 1
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
call fcn.00526f60
add esp, 0xc
test al, al
je 0x53f6b4
mov byte [0x8bd39f], bl
mov byte [0x8bd39e], 1
jmp 0x53f6c8
cmp byte [0x8bd39e], bl
setne al
mov byte [0x8bd39f], al
mov byte [0x8bd39e], bl
push 2
call fcn.00526f60
add esp, 4
test al, al
je 0x53f6eb
cmp byte [0x8bd39d], bl
setne cl
mov byte [0x8bd39c], cl
mov byte [0x8bd39d], bl
mov edx, dword [esi]
cmp byte [edx + 0x108], bl
je 0x53f70e
mov eax, dword [0x940f10]
mov ecx, dword [0x940f14]
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], ecx
cmp dword [ebp + 0x13ac], ebx
je 0x53f731
lea edx, [esp + 0x44]
push edx
call dword [0x8bd2d8]
add esp, 4
test eax, eax
jne 0x53f731
mov eax, dword [esi]
mov dword [eax + 4], 1
mov ecx, ebp
call fcn.00530ce0
mov ecx, dword [esi]
call fcn.00529310
mov ecx, dword [esi]
call fcn.005276a0
cmp dword [esp + 0x1f4], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
je 0x540845
mov ecx, dword [ebp + 0xc]
push ecx
mov byte [esp + 0x23], bl
call fcn.00578b40
mov edi, eax
mov eax, dword [ebp + 0x13ac]
add esp, 4
cmp eax, ebx
je 0x53f7ce
cmp dword [0x940f3c], ebx
je 0x53f7ce
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebp
call fcn.00531d10
test eax, eax
je 0x53f7ce
sub esp, 0xc
mov eax, esp
lea edx, [ebp + 0x1278]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x1568]
mov dword [eax + 8], edx
mov eax, dword [ebp + 0x1284]
mov edx, dword [ebp + 0x156c]
push eax
push ecx
mov ecx, dword [esi]
push edx
mov byte [esp + 0x37], 1
call fcn.00527650
cmp edi, 5
je 0x53f822
cmp dword [ebp + 0x139c], ebx
jne 0x53f822
mov ecx, 0x940f08
call fcn.00402e40
test eax, eax
je 0x53f822
mov eax, dword [ebp + 0x1568]
cmp eax, 0x16
je 0x53f822
cmp eax, 0x17
je 0x53f822
cmp eax, 0x20
je 0x53f822
mov dword [ebp + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov edx, dword [esi]
mov dword [edx + 0xc], ebx
mov eax, dword [esi]
mov dword [eax + 0x10], ebx
jmp 0x540892
cmp byte [esp + 0x1f], bl
jne 0x540892
mov ecx, dword [esp + 0x200]
mov edx, dword [esp + 0x1fc]
push ecx
push edx
call fcn.00579c70
add esp, 8
cmp eax, ebx
mov dword [esp + 0x98], eax
je 0x53f9f4
mov ecx, dword [esi]
push eax
call fcn.00529410
mov edi, eax
cmp edi, ebx
je 0x53f9f4
cmp dword [edi + 0x1558], 1
je 0x53f9f4
mov eax, dword [esp + 0x54]
mov ebp, dword [edi + 0xc]
cmp ebp, dword [eax + 0xc]
je 0x53f9f4
lea ecx, [ebp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x80], edx
lea edx, [esp + 0x10]
mov dword [esp + 0x84], eax
push edx
lea eax, [esp + 0x84]
mov dword [esp + 0x8c], ecx
push eax
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 0x43480000
mov dword [esp + 0x24], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
add esp, 0xc
push 6
push 0x43c80000
push 0xff0022ff
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
push ebp
mov dword [edx + 8], eax
call fcn.00578a80
mov ecx, dword [edi + 0x1288]
push ecx
call dword [0x8bd318]
add esp, 0x20
cmp eax, 2
je 0x53f921
mov edx, dword [edi + 0x1288]
push edx
call dword [0x8bd314]
add esp, 4
cmp eax, 1
jne 0x53f9f4
mov eax, dword [esi]
cmp byte [eax + 0x108], bl
je 0x53f9f4
cmp byte [0x8bd39e], bl
jne 0x53f949
push 2
call fcn.00526f60
add esp, 4
test al, al
je 0x53f9f4
mov edi, dword [edi + 0xc]
add edi, 0x1c
mov ecx, dword [edi]
mov dword [esp + 0x8c], ecx
mov edx, dword [edi + 4]
mov dword [esp + 0x90], edx
mov eax, dword [edi + 8]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x90]
mov dword [esp + 0x98], eax
push edx
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 0x42c80000
mov dword [esp + 0x24], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0xe8]
push ecx
lea edx, [esp + 0xac]
mov dword [esp + 0xa4], eax
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.00573b9e
fld dword [esp + 0xb8]
add esp, 0x18
call fcn.0061672c
fld dword [esp + 0x9c]
push eax
call fcn.0061672c
push eax
mov ecx, 0x940f08
call fcn.0044ce30
cmp byte [0x8bd39f], bl
mov edi, 0x461c4000
jne 0x53fd00
push 1
call fcn.00526f60
add esp, 4
test al, al
je 0x53fd00
push 0x11
call fcn.00526f60
add esp, 4
test al, al
je 0x53fd00
mov ecx, dword [0x9411dc]
mov edx, dword [0x9411d8]
mov eax, dword [esp + 0x200]
push ecx
mov ecx, dword [esp + 0x200]
push edx
push eax
push ecx
call fcn.00579070
mov edx, dword [0xb1cb38]
mov eax, dword [0xb1cb3c]
mov ebp, dword [0xb1cb34]
push 0xb21c64
lea ecx, [esp + 0x34]
mov dword [esp + 0x50], edx
push ecx
lea edx, [esp + 0x60]
push edx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], edi
call fcn.005353f0
push eax
lea eax, [esp + 0xa0]
push 0xb1cb34
push eax
call fcn.0044cdb0
add esp, 0x28
push fcn.00525130
push 4
push 0xc
lea ecx, [esp + 0xb4]
push ecx
call fcn.00401000
mov eax, 0xc61c4000
lea edx, [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x20], ebx
call fcn.0044cdb0
mov edx, dword [eax]
mov dword [esp + 0xb4], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0xb8], ecx
mov edx, dword [eax + 8]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0xc0], edx
push ecx
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0xc61c4000
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xd0], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x44]
mov dword [esp + 0xd8], eax
push edx
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x34], 0xc61c4000
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x50]
mov dword [esp + 0xf0], eax
push edx
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], edi
call fcn.0044cdb0
mov ecx, dword [eax]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xfc], ecx
mov edx, dword [eax + 4]
add esp, 0x30
mov dword [esp + 0xd0], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xd8], eax
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x90]
sub esp, 0xc
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x54]
sub esp, 0xc
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
call fcn.00576ca6
add esp, 0x20
test eax, eax
jne 0x53fc4a
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0xb8]
push edx
mov edx, dword [esp + 0x90]
sub esp, 0xc
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x54]
sub esp, 0xc
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
call fcn.00576ca6
add esp, 0x20
test eax, eax
je 0x53fc85
lea eax, [esp + 0x24]
push 0xb21c64
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.005353f0
push eax
lea edx, [esp + 0x48]
lea eax, [esp + 0x20]
push edx
push eax
call fcn.0044cdb0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
add esp, 0x18
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x9c]
push ecx
mov ecx, dword [esi]
call fcn.00529450
mov edi, dword [esp + 0x54]
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, edi
call fcn.005311b0
test eax, eax
je 0x53fcf8
sub esp, 0xc
mov eax, esp
lea edx, [edi + 0x1278]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0x1568]
mov dword [eax + 8], edx
mov eax, dword [edi + 0x1284]
mov edx, dword [edi + 0x156c]
push eax
push ecx
mov ecx, dword [esi]
push edx
call fcn.00527650
mov eax, dword [esi]
mov byte [eax + 0xf4], bl
mov ecx, dword [esi]
cmp byte [ecx + 0xf4], bl
je 0x53fdfa
lea edx, [esp + 0x28]
push edx
add ecx, 0xe8
push ecx
lea eax, [esp + 0x50]
push eax
call fcn.0040bce0
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov eax, dword [eax + 8]
add esp, 0xc
lea ecx, [esp + 0x58]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ebx
call fcn.00418170
fcomp dword [0x64fc90]
fnstsw ax
test ah, 0x41
jp 0x53fd8f
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
mov edx, dword [esi]
mov eax, dword [edx + 0xd4]
cmp eax, 0xffffffff
je 0x5409d2
mov ecx, dword [0x8bd2c4]
cmp ecx, ebx
je 0x53fd7e
push eax
call ecx
add esp, 4
mov eax, dword [esi]
mov dword [eax + 0xd4], 0xffffffff
jmp 0x5409d2
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [esi]
call fcn.00529450
mov edi, dword [esp + 0x54]
push ebx
mov ecx, edi
call fcn.00532080
cmp dword [edi + 0x1568], 1
jne 0x53ffd9
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x2c], 0x41600000
call fcn.00525020
mov ecx, dword [eax]
add esp, 0xc
push ebx
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0xc]
push ecx
mov dword [edx + 8], eax
call fcn.00578ae0
add esp, 0x14
jmp 0x53ffd9
cmp byte [ecx + 0xf5], bl
je 0x53ff9a
mov edx, dword [ecx + 0xf8]
push edx
call fcn.00528740
mov edi, eax
cmp edi, ebx
jne 0x53fe2d
mov eax, dword [esi]
mov byte [eax + 0xf4], bl
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
jmp 0x5409d2
mov eax, dword [edi + 0xc]
cmp eax, ebx
jne 0x53fe46
mov edx, dword [esi]
mov byte [edx + 0xf4], bl
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
jmp 0x53fe5d
add eax, 0x1c
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0040bce0
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x68], edx
mov eax, dword [eax + 8]
add esp, 0xc
lea ecx, [esp + 0x58]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ebx
call fcn.00418170
fcomp dword [0x64fe60]
fnstsw ax
test ah, 0x41
jp 0x53ff42
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov eax, dword [edi + 0x1288]
push eax
call dword [0x8bd318]
add esp, 4
cmp eax, 2
je 0x53ff05
mov ecx, dword [edi + 0x1288]
push ecx
call dword [0x8bd314]
add esp, 4
sub eax, ebx
je 0x53fef0
dec eax
jne 0x53ff05
mov edx, dword [esi]
mov dword [edx + 0xd0], 1
jmp 0x53ff05
mov al, byte [0x940f90]
test al, al
jns 0x53ff05
mov eax, dword [esi]
mov dword [eax + 0xd0], 1
cmp dword [0x8bd398], ebx
jne 0x53ff42
push 2
call fcn.00526f60
add esp, 4
test al, al
je 0x53ff42
cmp dword [edi + 0x13ac], ebx
jne 0x53ff42
mov dword [edi + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov edx, dword [esi]
mov dword [edx + 0xc], ebx
mov eax, dword [esi]
mov dword [eax + 0x10], ebx
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [esi]
call fcn.00529450
push ebx
mov ecx, edi
call fcn.00532080
cmp dword [edi + 0x1568], 1
jne 0x53ffd5
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x2c], 0x41600000
call fcn.00525020
mov ecx, dword [eax]
add esp, 0xc
push ebx
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [edx + 8], eax
push ecx
jmp 0x53ffcd
mov ecx, dword [esp + 0x54]
cmp dword [ecx + 0x1558], ebx
jne 0x53ffab
call fcn.00531070
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
push ebx
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x70]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 8], eax
mov edx, dword [ecx + 0xc]
push edx
call fcn.00578ae0
add esp, 0x14
mov edi, dword [esp + 0x54]
mov ecx, dword [esi]
cmp byte [ecx + 0xe4], bl
je 0x540161
mov eax, dword [ecx + 0xf8]
push eax
call fcn.00528740
mov ebp, eax
cmp ebp, ebx
je 0x540145
cmp dword [ebp + 0x1558], 1
jne 0x540022
mov ecx, dword [esi]
mov dword [ecx + 0xf8], 0xffffffff
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov eax, dword [esi]
mov byte [eax + 0xf4], bl
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x540145
cmp eax, dword [edi + 0xc]
je 0x540145
cmp dword [ebp + 0x1558], ebx
jne 0x540145
add eax, 0x1c
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x84], edx
push ecx
lea edx, [esp + 0x84]
mov dword [esp + 0x8c], eax
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0040bce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], ecx
add esp, 0xc
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
call fcn.00418170
fcomp dword [0x64fe60]
fnstsw ax
test ah, 5
jp 0x54012c
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0040bce0
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 4]
add esp, 0xc
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edx
mov eax, dword [eax + 8]
push ecx
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
call fcn.00529450
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, edi
call fcn.005311b0
test eax, eax
je 0x540151
sub esp, 0xc
mov eax, esp
lea edx, [edi + 0x1278]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0x1568]
mov dword [eax + 8], edx
mov eax, dword [edi + 0x1284]
mov edx, dword [edi + 0x156c]
push eax
push ecx
mov ecx, dword [esi]
push edx
call fcn.00527650
jmp 0x540151
mov edx, dword [esi]
mov eax, dword [ebp + 0x1288]
mov dword [edx + 0xf8], eax
mov ecx, dword [esi]
mov byte [ecx + 0xf5], 1
jmp 0x540161
mov edx, dword [esi]
mov dword [edx + 0xf8], 0xffffffff
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
cmp dword [edi + 0x1558], ebx
jne 0x540892
cmp byte [0x8bd39f], bl
jne 0x5401a1
push 1
call fcn.00526f60
add esp, 4
test al, al
jne 0x540195
push 2
call fcn.00526f60
add esp, 4
test al, al
je 0x540892
cmp byte [0x8bd39f], bl
je 0x54029a
mov edx, dword [esp + 0x200]
mov eax, dword [esp + 0x1fc]
push edx
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.0057ae70
mov ebp, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [eax + 8]
add esp, 0xc
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edi
call fcn.00418170
fcomp dword [0x64fe88]
fnstsw ax
test ah, 0x41
jnp 0x5409d2
push 0x388
mov ecx, 0xb21d88
call fcn.0057d900
mov dword [esp + 0xdc], eax
cmp eax, ebx
mov dword [esp + 0x1ec], 2
je 0x54021e
mov ecx, eax
call fcn.00584210
mov dword [esp + 0x34], eax
jmp 0x540222
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x34]
push eax
mov dword [esp + 0x1f0], 0xffffffff
call fcn.00578ac0
mov ecx, dword [esp + 0x38]
add esp, 4
push 1
push 0x65f1a0
call fcn.0058b7a0
fld dword [esp + 0x3c]
fadd dword [0x657fc0]
push edi
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x3c]
push ebp
call fcn.00583a00
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
push edi
push edx
push ebp
call fcn.00582550
mov eax, dword [0x940f14]
mov ecx, dword [0x940f10]
push eax
push ecx
call fcn.00578a10
mov edx, dword [esi]
add esp, 8
mov dword [edx + 0xd4], eax
jmp 0x540561
push 1
call fcn.00526f60
add esp, 4
test al, al
je 0x540559
mov eax, dword [0x9411dc]
mov ecx, dword [0x9411d8]
mov edx, dword [esp + 0x200]
push eax
mov eax, dword [esp + 0x200]
push ecx
push edx
push eax
call fcn.00579070
mov ecx, dword [0xb1cb3c]
mov edi, dword [0xb1cb34]
mov ebp, dword [0xb1cb38]
push 0xb21c64
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x60]
push eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ecx
mov dword [esp + 0x3c], 0x461c4000
call fcn.005353f0
push eax
lea ecx, [esp + 0x84]
push 0xb1cb34
push ecx
call fcn.0044cdb0
add esp, 0x28
push fcn.00525130
push 4
push 0xc
lea edx, [esp + 0xb4]
push edx
call fcn.00401000
mov eax, 0xc61c4000
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x50]
push edx
mov dword [esp + 0x20], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xb4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xb8], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x38]
mov dword [esp + 0xc0], eax
push edx
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x28], 0x461c4000
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0xc61c4000
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xd0], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x44]
mov dword [esp + 0xd8], eax
push edx
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x34], 0xc61c4000
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 0x461c4000
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xec], eax
mov eax, 0x461c4000
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x50]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
push edx
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x44], ebx
call fcn.0044cdb0
mov ecx, dword [eax]
mov dword [esp + 0xfc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x100], edx
mov eax, dword [eax + 8]
add esp, 0x30
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0xdc], eax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x8c]
sub esp, 0xc
mov edx, esp
mov dword [edx], edi
mov dword [edx + 4], ebp
mov dword [edx + 8], eax
call fcn.00576ca6
add esp, 0x20
test eax, eax
je 0x5404d5
push 0xb21c64
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.005353f0
push eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.0044cdb0
mov edx, dword [eax + 4]
mov ebp, dword [eax]
mov edi, dword [eax + 8]
add esp, 0x18
mov dword [esp + 0x3c], edx
jmp 0x540561
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x70]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x80]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov edx, dword [esp + 0x8c]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edi
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
call fcn.00576ca6
add esp, 0x20
test eax, eax
je 0x540559
push 0xb21c64
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.005353f0
push eax
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0xb0]
push eax
call fcn.0044cdb0
mov ecx, dword [eax + 4]
mov ebp, dword [eax]
mov edi, dword [eax + 8]
add esp, 0x18
mov dword [esp + 0x3c], ecx
jmp 0x540561
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov edx, dword [esi]
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0xf8], 0xffffffff
mov eax, dword [esi]
add eax, 0xe8
mov dword [eax], ebp
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov eax, dword [esp + 0x98]
cmp eax, ebx
mov ecx, dword [esi]
je 0x540810
mov ebp, eax
push ebp
call fcn.00529410
cmp eax, ebx
mov dword [esp + 0x24], eax
je 0x5407ee
mov edi, dword [esp + 0x54]
mov edx, dword [eax + 0xc]
cmp edx, dword [edi + 0xc]
je 0x5407ee
cmp dword [eax + 0x1558], ebx
jne 0x5407ee
add ebp, 0x1c
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x84], ecx
push eax
lea ecx, [esp + 0x84]
mov dword [esp + 0x8c], edx
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.0040bce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], ecx
add esp, 0xc
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
call fcn.00418170
fcomp dword [0x64fe60]
fnstsw ax
test ah, 5
jp 0x540712
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0040bce0
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 4]
add esp, 0xc
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edx
mov eax, dword [eax + 8]
push ecx
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
call fcn.00529450
push 1
call fcn.00526f60
add esp, 4
test al, al
je 0x5406ba
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, edi
call fcn.005311b0
test eax, eax
je 0x5406fd
sub esp, 0xc
mov eax, esp
lea edx, [edi + 0x1278]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0x1568]
mov dword [eax + 8], edx
mov eax, dword [edi + 0x1284]
mov edx, dword [edi + 0x156c]
push eax
push ecx
mov ecx, dword [esi]
push edx
call fcn.00527650
jmp 0x5406fd
push 2
call fcn.00526f60
add esp, 4
test al, al
je 0x5406fd
cmp dword [edi + 0x13ac], ebx
jne 0x5406fd
mov eax, dword [0x8bd398]
cmp eax, ebx
je 0x5406de
cmp eax, 1
jne 0x5406fd
mov dword [edi + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov edx, dword [esi]
mov dword [edx + 0xc], ebx
mov eax, dword [esi]
mov dword [eax + 0x10], ebx
mov ecx, dword [esi]
mov byte [ecx + 0xf5], bl
mov edx, dword [esi]
mov byte [edx + 0xf4], bl
jmp 0x540793
push 2
call fcn.00526f60
add esp, 4
test al, al
je 0x540754
mov ecx, dword [0x8bd398]
mov eax, 1
cmp ecx, eax
jne 0x540754
cmp dword [edi + 0x13ac], ebx
jne 0x540754
mov dword [edi + 0x13ac], eax
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esi]
mov dword [ecx + 8], eax
mov edx, dword [esi]
mov dword [edx + 0xc], ebx
mov eax, dword [esi]
mov dword [eax + 0x10], ebx
jmp 0x540793
mov ecx, dword [esi]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x1288]
mov dword [ecx + 0xf8], eax
mov ecx, dword [esi]
mov dword [ecx + 0xd0], ebx
call dword [0x8bd308]
test eax, eax
je 0x540783
mov edx, dword [esi]
mov byte [edx + 0xf5], 1
jmp 0x54078b
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov ecx, dword [esi]
mov byte [ecx + 0xf4], bl
push 0x11
call fcn.00526f60
mov edx, dword [esi]
add esp, 4
test al, al
je 0x5407d7
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x1288]
mov dword [edx + 0xf8], ecx
mov edx, dword [esi]
mov dword [edx + 0xd0], ebx
mov eax, dword [esi]
mov byte [eax + 0xe4], 1
mov eax, dword [esi]
mov ecx, dword [eax + 0xf8]
mov dword [eax + 0xe0], ecx
jmp 0x540892
mov byte [edx + 0xe4], bl
mov eax, dword [esi]
mov dword [eax + 0xe0], 0xffffffff
jmp 0x540892
mov ecx, dword [esi]
mov dword [ecx + 0xf8], 0xffffffff
mov edx, dword [esi]
mov byte [edx + 0xf5], bl
mov eax, dword [esi]
mov byte [eax + 0xf4], 1
jmp 0x540892
mov dword [ecx + 0xf8], 0xffffffff
mov edx, dword [esi]
push 2
mov byte [edx + 0xf5], bl
call fcn.00526f60
add esp, 4
test al, al
je 0x54083a
mov eax, dword [esi]
mov byte [eax + 0xf4], bl
jmp 0x540892
mov ecx, dword [esi]
mov byte [ecx + 0xf4], 1
jmp 0x540892
cmp dword [ebp + 0x1558], ebx
jne 0x540854
mov ecx, ebp
call fcn.00531070
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
push ebx
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x70]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0xc]
push ecx
mov dword [edx + 8], eax
call fcn.00578ae0
mov edx, dword [esi]
mov dword [edx + 0xf8], edi
mov eax, dword [esi]
mov byte [eax + 0xf5], bl
mov ecx, dword [esi]
add esp, 0x14
mov byte [ecx + 0xf4], bl
mov edx, dword [esp + 0x1f4]
mov ecx, dword [esi]
push edx
call fcn.00529510
mov eax, dword [esi]
mov ecx, dword [eax + 0xbc]
push ecx
call fcn.00573e9a
fcomp dword [0x64fe64]
add esp, 4
fnstsw ax
test ah, 1
jne 0x5409d2
mov edi, dword [esp + 0x54]
push 2
mov ecx, edi
call fcn.0052f750
test eax, eax
je 0x5409d2
mov eax, dword [edi + 0x1568]
dec eax
je 0x540936
sub eax, 7
je 0x5408f4
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ebx
jmp 0x540972
mov edx, dword [esi]
fld dword [edx + 0x9c]
lea eax, [esp + 0x20]
fdiv dword [0x64fe78]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0xf0]
push edx
fstp dword [esp + 0x2c]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
jmp 0x540976
mov ecx, dword [esi]
fld dword [ecx + 0x98]
lea edx, [esp + 0x20]
fdiv dword [0x64fe78]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0xf0]
push ecx
fstp dword [esp + 0x2c]
call fcn.00525020
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
lea eax, [edi + 0x1278]
push eax
lea ecx, [esp + 0x2c]
call fcn.00524ff0
mov ecx, dword [edi + 0xc]
push ecx
call fcn.00578b40
mov ecx, dword [esp + 0x30]
add esp, 4
sub esp, 0xc
cmp eax, 5
mov eax, dword [esp + 0x34]
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0x1284]
push ecx
mov ecx, dword [esi]
mov dword [edx + 8], eax
jne 0x5409bf
push 0x64
push 0x64
jmp 0x5409cd
mov edx, dword [edi + 0x1568]
mov eax, dword [edi + 0x156c]
push edx
push eax
call fcn.00527650
mov ecx, dword [esp + 0x1e4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1e0
ret 0x10