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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x6c]
cmp eax, dword [ecx + 8]
jbe 0x514171
sub esp, 0xec
mov eax, dword [esp + 0x100]
mov dword [esp], eax
mov ecx, dword [esp + 0x104]
mov dword [esp + 4], ecx
call fcn.00515500
mov eax, dword [esp + 8]
test eax, eax
je 0x513dfe
mov dword [esp + 0x74], eax
lea ecx, [0x78aca0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00443100
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x513df3
mov dword [esp + 0xc0], eax
mov edx, dword [ecx + 8]
cmp edx, 0x734d2a16
ja 0x513546
cmp edx, 0x26b80717
jbe 0x51309a
cmp edx, 0x5fcadfef
ja 0x512ecc
cmp edx, 0x30c31d62
ja 0x512e69
cmp edx, 0x2ea27ffb
je 0x512dfd
cmp edx, 0x30c31d62
jne 0x512df5
lea edx, [0x7762e0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov ebp, dword [esp + 0x74]
xor ecx, ecx
jmp 0x512da3
xchg esi, ebx
mov byte [eax + ecx], bl
xchg esi, ebx
inc ecx
cmp edx, ecx
jle 0x512db4
movzx esi, byte [ebx + ecx]
cmp ebp, ecx
ja 0x512d9b
jmp 0x51412b
mov ecx, ebp
mov edx, dword [esp + 0xf0]
mov edx, dword [edx + 0x10]
mov ebx, dword [esp + 0xf4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
call edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
add esp, 0xec
ret
mov ebp, dword [esp + 0x74]
mov ecx, ebp
jmp 0x512db6
lea edx, [0x7878e0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
movsd xmm0, qword [ecx]
movsd qword [esp + 0x8c], xmm0
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0xfc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0x382e7edf
jne 0x512e93
lea edx, [0x777aa0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov ebp, dword [edx + 8]
jmp 0x512db6
cmp edx, 0x5fcadfef
jne 0x512df5
lea edx, [0x76d280]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
movzx edx, byte [edx]
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x51413b
mov byte [eax], dl
mov ebp, ecx
jmp 0x512db6
cmp edx, 0x6b581726
jbe 0x513006
cmp edx, 0x6e0df0d1
je 0x512fc3
cmp edx, 0x734d2a16
jne 0x512df5
lea edx, [0x776260]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0xb0], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x1c], edx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x512f9f
mov edx, dword [edi + 0x14]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call edx
mov eax, dword [esp + 0x50]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xb0]
mov eax, esi
mov edx, dword [esp + 0x1c]
mov ebx, edi
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
cmp ecx, edx
jge 0x512fba
mov dword [esp + 0x50], ecx
mov ebx, dword [ebx + ecx*4]
shl ecx, 2
cmp esi, ecx
jae 0x512f2b
jmp 0x514102
mov ebp, esi
mov ecx, ebp
jmp 0x512db6
lea edx, [0x768840]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
movzx edx, byte [edx]
test dl, dl
je 0x512ff5
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x514169
mov byte [eax], 1
mov ebp, ecx
jmp 0x512db6
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x514162
mov byte [eax], 0
jmp 0x512fee
cmp edx, 0x663e425f
jne 0x51303b
lea edx, [0x78aca0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
movzx edx, byte [edx]
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x51411d
mov byte [eax], dl
mov ebp, ecx
jmp 0x512db6
cmp edx, 0x6b581726
jne 0x512df5
lea edx, [0x76d200]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0x104]
mov edx, dword [edx]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0x1f1d91d4
ja 0x5132a1
cmp edx, 0x13ff06c5
jbe 0x5131f7
cmp edx, 0x1e2f74f8
je 0x51319d
cmp edx, 0x1f1d91d4
jne 0x512df5
lea edx, [0x777a20]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0xa8], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x2c], edx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x513179
mov edx, dword [edi + 0x14]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call edx
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xa8]
mov eax, esi
mov edx, dword [esp + 0x2c]
mov ebx, edi
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
cmp ecx, edx
jge 0x513194
mov dword [esp + 0x4c], ecx
mov ebx, dword [ebx + ecx*4]
shl ecx, 2
cmp esi, ecx
jae 0x513105
jmp 0x5140f9
mov ebp, esi
mov ecx, ebp
jmp 0x512db6
lea edx, [0x7731c0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov ebp, dword [esp + 0xfc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xc66cd3
jne 0x513252
lea edx, [0x773180]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0x104]
mov edx, dword [edx]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0x13ff06c5
jne 0x512df5
lea edx, [0x7875e0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
movzx edx, byte [edx]
test dl, dl
je 0x513290
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x51415b
mov byte [eax], 1
mov ebp, ecx
jmp 0x512db6
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x514154
mov byte [eax], 0
jmp 0x513289
cmp edx, 0x2069b53f
ja 0x513400
cmp edx, 0x1ffee651
je 0x5133a1
cmp edx, 0x2069b53f
jne 0x512df5
lea edx, [0x777a60]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0x98], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x513378
mov edi, dword [edi + 0x18]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call edi
mov eax, dword [esp + 0x5c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xc0]
mov esi, dword [esp + 0xf8]
mov edi, dword [esp + 0x98]
mov eax, ebp
mov edx, dword [esp + 0x20]
mov ebx, edi
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
cmp edx, ecx
jle 0x513398
mov dword [esp + 0x5c], ecx
lea ebx, [ebx + ecx*8]
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
shl ecx, 3
cmp esi, ecx
jae 0x513300
jmp 0x5140e7
mov ebp, esi
mov ecx, ebp
jmp 0x512db6
lea edx, [0x76a080]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
movss xmm0, dword [ecx]
movss dword [esp + 0x64], xmm0
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0x20e38ee7
jne 0x5134e0
lea edx, [0x7779e0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0xac], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x30], edx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x5134bc
mov edx, dword [edi + 0x10]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov word [esp + 0x10], bx
call edx
mov eax, dword [esp + 0x48]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xac]
mov eax, esi
mov edx, dword [esp + 0x30]
mov ebx, edi
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
cmp edx, ecx
jle 0x5134d7
mov dword [esp + 0x48], ecx
movzx ebx, word [ebx + ecx*2]
shl ecx, 1
cmp esi, ecx
jae 0x513447
jmp 0x51410b
mov ebp, esi
mov ecx, ebp
jmp 0x512db6
cmp edx, 0x26b80717
jne 0x512df5
lea edx, [0x76d240]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov ebp, dword [esp + 0xfc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xa066c615
jbe 0x5138bd
cmp edx, 0xcc06c027
jbe 0x513740
cmp edx, 0xe781e5b1
ja 0x513625
cmp edx, 0xd04ae83d
je 0x5135d2
cmp edx, 0xe781e5b1
jne 0x512df5
lea edx, [0x775060]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov ebp, dword [esp + 0x74]
xor ecx, ecx
jmp 0x5135a1
inc ecx
cmp ecx, edx
jge 0x5135cb
movzx esi, byte [ebx + ecx]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5135bd
cmp ebp, ecx
jbe 0x51414b
mov byte [eax + ecx], 1
jmp 0x5135a0
cmp ebp, ecx
jbe 0x514142
mov byte [eax + ecx], 0
jmp 0x5135a0
mov ecx, ebp
jmp 0x512db6
lea edx, [0x78ac20]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx + 0x14]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call edx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xecd580ce
jne 0x513682
lea edx, [0x78a160]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
movzx ecx, word [ecx]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx + 0x10]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], cx
call edx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xee92f42e
jne 0x5136df
lea edx, [0x773140]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esp + 0x104]
movzx edx, word [edx]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], dx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xeff20ea0
jne 0x512df5
lea edx, [0x78abe0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
movzx ecx, word [ecx]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx + 0x10]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], cx
call edx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xba56ad13
ja 0x513829
cmp edx, 0xb0c23ed3
jne 0x5137b3
lea edx, [0x7878a0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
movss xmm0, dword [ecx]
movss dword [esp + 0x6c], xmm0
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xba56ad13
jne 0x512df5
lea edx, [0x76a0c0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
movsd xmm0, qword [ecx]
movsd qword [esp + 0x7c], xmm0
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0xfc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xbbad4102
jne 0x513884
lea edx, [0x78a1a0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx + 0x14]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call edx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0xcc06c027
jne 0x512df5
lea edx, [0x78a220]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
movzx edx, byte [edx]
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x514134
mov byte [eax], dl
mov ebp, ecx
jmp 0x512db6
cmp edx, 0x88768e96
ja 0x513bec
cmp edx, 0x8237d00c
ja 0x513a9e
cmp edx, 0x7ad3bff0
jne 0x5139be
lea edx, [0x7757a0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0xa4], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x51399a
movss dword [esp + 0x68], xmm0
mov edx, dword [edi + 0x14]
mov ebx, dword [esp + 0x68]
mov dword [esp], esi
sub ebp, ecx
mov dword [esp + 0x78], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ecx, ebp
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call edx
mov eax, dword [esp + 0x54]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0xfc]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xa4]
mov eax, esi
mov edx, dword [esp + 0x28]
mov ebx, edi
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0xfc]
mov edi, dword [esp + 0xf8]
cmp ecx, edx
jge 0x5139b7
mov dword [esp + 0x54], ecx
movss xmm0, dword [ebx + ecx*4]
shl ecx, 2
cmp ebp, ecx
jae 0x51391c
jmp 0x5140de
mov ecx, ebp
jmp 0x512db6
cmp edx, 0x8237d00c
jne 0x512df5
lea edx, [0x776220]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0x9c], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x38], edx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x513a7a
mov edx, dword [edi + 0x10]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov word [esp + 0x10], bx
call edx
mov eax, dword [esp + 0x44]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x9c]
mov eax, esi
mov edx, dword [esp + 0x38]
mov ebx, edi
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
cmp ecx, edx
jge 0x513a95
mov dword [esp + 0x44], ecx
movzx ebx, word [ebx + ecx*2]
shl ecx, 1
cmp esi, ecx
jae 0x513a05
jmp 0x514114
mov ebp, esi
mov ecx, ebp
jmp 0x512db6
cmp edx, 0x86318d2e
je 0x513b92
cmp edx, 0x88768e96
jne 0x512df5
lea edx, [0x7762a0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0xb8], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x24], edx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x513b69
mov edi, dword [edi + 0x18]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call edi
mov eax, dword [esp + 0x58]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xc0]
mov esi, dword [esp + 0xf8]
mov edi, dword [esp + 0xb8]
mov eax, ebp
mov edx, dword [esp + 0x24]
mov ebx, edi
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
cmp ecx, edx
jge 0x513b89
mov dword [esp + 0x58], ecx
lea ebx, [ebx + ecx*8]
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
shl ecx, 3
cmp esi, ecx
jae 0x513af1
jmp 0x5140f0
mov ebp, esi
mov ecx, ebp
jmp 0x512db6
lea edx, [0x78ac60]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov ebx, dword [esp + 0xf8]
mov ebx, dword [ebx + 0x18]
mov ebp, dword [esp + 0xfc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call ebx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0x9ad926a8
jbe 0x513d58
cmp edx, 0x9c373330
jne 0x513cf7
lea edx, [0x7757e0]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
mov ebx, dword [edx]
mov dword [esp + 0xa0], ebx
mov edx, dword [edx + 4]
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
xor ecx, ecx
jmp 0x513cd1
movsd qword [esp + 0x84], xmm0
mov edx, dword [edi + 0x18]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
call edx
mov eax, dword [esp + 0x60]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0xf8]
mov edi, dword [esp + 0xa0]
mov eax, edx
mov edx, dword [esp + 0x34]
mov ebx, edi
mov ebp, dword [esp + 0xfc]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xf8]
cmp edx, ecx
jle 0x513cee
mov dword [esp + 0x60], ecx
movsd xmm0, qword [ebx + ecx*8]
shl ecx, 3
cmp esi, ecx
jae 0x513c42
jmp 0x5140d5
mov ebp, esi
mov ecx, ebp
jmp 0x512db6
cmp edx, 0xa066c615
jne 0x512df5
lea edx, [0x76d1c0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esp + 0x104]
movzx edx, word [edx]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], dx
call ecx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0x963f9bff
jne 0x513dba
lea edx, [0x78a1e0]
cmp edx, ecx
jne 0x512df5
mov ecx, dword [esp + 0x104]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov ebx, dword [esp + 0xf8]
mov ebx, dword [ebx + 0x18]
mov ebp, dword [esp + 0xfc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call ebx
mov ebp, dword [esp + 0x74]
mov ecx, ebp
mov eax, dword [esp + 0xc0]
jmp 0x512db6
cmp edx, 0x9ad926a8
jne 0x512df5
lea edx, [0x773200]
cmp edx, ecx
jne 0x512df5
mov edx, dword [esp + 0x104]
movzx edx, byte [edx]
mov ecx, dword [esp + 0x74]
test ecx, ecx
jbe 0x514124
mov byte [eax], dl
mov ebp, ecx
jmp 0x512db6
mov ebp, dword [esp + 0x74]
mov ecx, ebp
jmp 0x512db6
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x5140c3
nop
movzx edx, byte [0xa80ca8]
test dl, dl
je 0x5140b7
mov dword [0xa80cac], ecx
mov edx, dword [0xa976a0]
test edx, edx
jne 0x5140a0
mov eax, dword [esp + 0x104]
mov dword [0xa80cb0], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0xcc]
test edx, edx
je 0x514093
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x513e72
or ebx, 0x80
mov ebp, eax
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
je 0x514072
mov dword [esp + 0x3c], esi
mov dword [esp + 0xb4], eax
mov dword [esp + 0x94], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00514180
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x513f8c
mov eax, dword [esp + 0x100]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x513f83
lea ecx, [0x8796e0]
mov ecx, dword [ecx + 0x80]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x7f4c5c]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1b
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00446610
mov eax, dword [esp + 0x14]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
lea edx, [0x79c540]
mov dword [esp], edx
call fcn.0040b5d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov eax, dword [0xa976a0]
test eax, eax
jne 0x513f75
mov eax, dword [esp + 0xbc]
mov dword [edi], eax
lea eax, [0x8713a0]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edi
add esp, 0xec
ret
mov eax, dword [esp + 0xbc]
call fcn.0045c3e0
jmp 0x513f5a
xor ecx, ecx
xor eax, eax
jmp 0x513ee2
mov dword [esp + 0x70], eax
lea ecx, [0x78aca0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00443100
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc0], eax
lea edi, [esp + 0xd4]
xor eax, eax
call fcn.0045c67a
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ecx
lea edx, [esp + 0xd4]
mov dword [esp], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
call fcn.00514550
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
add esp, 0xec
ret
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00483f00
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x513e83
mov ebp, eax
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x513e74
lea edi, [0xa80cb0]
mov eax, dword [esp + 0x104]
call fcn.0045c3e0
jmp 0x513e3e
mov eax, dword [esp + 0x104]
jmp 0x513e3e
mov ebp, dword [esp + 0x104]
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x513e74
mov eax, ecx
mov ecx, esi
call fcn.0045c4c0
mov eax, ecx
mov ecx, ebp
call fcn.0045c4c0
mov eax, ecx
mov ecx, esi
call fcn.0045c4c0
mov eax, ecx
mov ecx, esi
call fcn.0045c4c0
mov eax, ecx
mov ecx, esi
call fcn.0045c4c0
mov eax, ecx
mov ecx, esi
call fcn.0045c4c0
mov eax, ecx
mov ecx, esi
call fcn.0045c4c0
mov eax, ecx
mov ecx, esi
call fcn.0045c4c0
xor eax, eax
call fcn.0045c460
xor eax, eax
call fcn.0045c460
mov eax, ecx
mov ecx, ebp
call fcn.0045c460
xor eax, eax
call fcn.0045c460
xor eax, eax
call fcn.0045c460
mov eax, ecx
mov ecx, ebp
call fcn.0045c460
mov eax, ecx
mov ecx, ebp
call fcn.0045c460
xor eax, eax
call fcn.0045c460
xor eax, eax
call fcn.0045c460
xor eax, eax
call fcn.0045c460
xor eax, eax
call fcn.0045c460
nop
call fcn.0045ae90
jmp fcn.00512cc0