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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4c]
cmp eax, dword [ecx + 8]
jbe 0x515c83
sub esp, 0xcc
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
call fcn.00519200
mov eax, dword [esp + 8]
test eax, eax
jne 0x515023
mov ecx, dword [esp + 0xe0]
test ecx, ecx
je 0x515011
nop
movzx edx, byte [0xe7b378]
test dl, dl
je 0x515005
mov dword [0xe7b37c], ecx
mov edx, dword [0xe8ff30]
test edx, edx
jne 0x514fee
mov eax, dword [esp + 0xe4]
mov dword [0xe7b380], eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0xa4]
test edx, edx
je 0x514fe1
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x514d3a
or ebx, 0x80
mov ebp, eax
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
je 0x514f7a
cmp ebx, 0x17
je 0x514f3b
mov ebx, 0xffffffff
test ebx, ebx
jge 0x514e25
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ebp
mov eax, dword [esp + 0xac]
test eax, eax
je 0x514e1c
lea ecx, [0xab2080]
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, [0x9de695]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1a
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00443570
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
lea edx, [0x94a0a0]
mov dword [esp], edx
call fcn.0040af00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x28]
mov dword [edi + 4], eax
mov eax, dword [0xe8ff30]
test eax, eax
jne 0x514e11
mov eax, dword [esp + 0x7c]
mov dword [edi], eax
lea eax, [0xaa4cf0]
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edi
add esp, 0xcc
ret
mov eax, dword [esp + 0x7c]
call fcn.00456ab0
jmp 0x514df6
xor ecx, ecx
xor eax, eax
jmp 0x514d84
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], edx
lea eax, [0x92cb00]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00440170
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.00456d7a
lea edi, [esp + 0xb4]
call fcn.00456d7a
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ecx
mov edx, dword [esp + 0xd0]
mov dword [esp], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
call fcn.00464ae0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x514ef7
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
add esp, 0xcc
ret
lea eax, [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
call fcn.005172e0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
add esp, 0xcc
ret
mov dword [esp + 0x68], esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00516e80
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xe4]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
jmp 0x514d59
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0048c4c0
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], edx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00516e80
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xe4]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
jmp 0x514d59
mov ebp, eax
xor ebx, ebx
xor eax, eax
xor edx, edx
jmp 0x514d3c
lea edi, [0xe7b380]
mov eax, dword [esp + 0xe4]
call fcn.00456ab0
jmp 0x514d06
mov eax, dword [esp + 0xe4]
jmp 0x514d06
mov ebp, dword [esp + 0xe4]
xor ebx, ebx
xor eax, eax
xor edx, edx
jmp 0x514d3c
mov dword [esp + 0x60], eax
lea ecx, [0x92cb00]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00440170
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
call fcn.00464ae0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x515bde
mov edx, dword [esp + 0xe0]
test edx, edx
je 0x515105
mov ebx, dword [edx + 8]
cmp ebx, 0x5fcadfef
ja 0x515646
cmp ebx, 0x2069b53f
jbe 0x515347
cmp ebx, 0x26b80717
jbe 0x5151d8
cmp ebx, 0x30c31d62
jne 0x5151cc
lea ebp, [0x907700]
cmp ebp, edx
jne 0x5151b6
mov ebp, dword [esp + 0xe4]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
jne 0x515122
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xa0]
xor eax, eax
jmp 0x5150f4
xchg ebp, ebx
mov byte [edi + eax], bl
xchg ebp, ebx
inc eax
cmp eax, edx
jge 0x515105
movzx ebp, byte [eax + ebx]
cmp eax, esi
jb 0x5150ec
jmp 0x515c5f
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
add esp, 0xcc
ret
cmp ebx, 0x382e7edf
jne 0x5151ae
lea esi, [0x909bc0]
cmp esi, edx
jne 0x5151a2
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
jne 0x515169
mov eax, dword [esp + 0x60]
cmp esi, eax
jle 0x515165
mov ecx, dword [esp + 0xa0]
cmp edi, ecx
je 0x515105
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00457480
jmp 0x515105
mov eax, esi
jmp 0x515148
cmp ebx, 0x5fcadfef
jne 0x515105
lea ebx, [0x8f6e80]
cmp ebx, edx
jne 0x51519b
jne 0x515105
mov ecx, dword [esp + 0x60]
test ecx, ecx
jbe 0x515c74
mov eax, dword [esp + 0xa0]
movzx eax, byte [eax]
mov byte [ebp], al
jmp 0x515105
mov ebp, 0
jmp 0x51517b
mov esi, 0
mov edi, 0
jmp 0x51513e
cmp ebx, 0x5fcadfef
jmp 0x51516f
mov ebp, dword [esp + 0xe4]
mov esi, 0
mov edi, 0
jmp 0x5150db
mov ebp, dword [esp + 0xe4]
jmp 0x515122
cmp ebx, 0x20e38ee7
jne 0x515335
lea ebp, [0x909b00]
cmp ebp, edx
jne 0x51531f
mov ebp, dword [esp + 0xe4]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
jne 0x5152af
mov dword [esp + 0x58], esi
mov dword [esp + 0x98], edi
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
xor ecx, ecx
jmp 0x51525c
mov edi, dword [esp + 0x98]
mov word [edi + ecx*2], ax
inc ecx
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0xa0]
mov eax, esi
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
cmp ecx, esi
jge 0x515105
mov dword [esp + 0x30], ecx
shl ecx, 1
cmp ecx, edx
ja 0x515c44
mov esi, dword [ebp + 0x20]
mov dword [esp], ebx
sub edx, ecx
mov dword [esp + 0x64], edx
neg edx
sar edx, 0x1f
and ecx, edx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call esi
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
cmp ecx, edx
jb 0x51522d
jmp 0x515c3b
cmp ebx, 0x26b80717
jne 0x515105
lea eax, [0x8f6e40]
cmp eax, edx
jne 0x515318
jne 0x515105
mov dword [esp + 0x94], ebp
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x94]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x515105
mov ebp, 0
jmp 0x5152c5
mov ebp, dword [esp + 0xe4]
mov esi, 0
mov edi, 0
jmp 0x5151ff
cmp ebx, 0x26b80717
mov ebp, dword [esp + 0xe4]
jmp 0x5152b5
cmp ebx, 0x1e2f74f8
jbe 0x515551
cmp ebx, 0x1f1d91d4
jne 0x51553f
lea ebp, [0x909b40]
cmp ebp, edx
jne 0x515529
mov ebp, dword [esp + 0xe4]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
jne 0x515429
mov dword [esp + 0x98], edi
mov dword [esp + 0x4c], esi
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
xor ecx, ecx
jmp 0x5153d6
mov edi, dword [esp + 0x98]
mov dword [edi + ecx*4], eax
inc ecx
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0xa0]
mov eax, esi
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x4c]
cmp ecx, esi
jge 0x515105
mov dword [esp + 0x44], ecx
shl ecx, 2
cmp ecx, edx
ja 0x515c20
mov esi, dword [ebp + 0x24]
mov dword [esp], ebx
sub edx, ecx
mov dword [esp + 0x64], edx
neg edx
sar edx, 0x1f
and ecx, edx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
cmp ecx, edx
jb 0x5153a8
jmp 0x515c17
cmp ebx, 0x2069b53f
jne 0x515105
lea ebx, [0x909b80]
cmp ebx, edx
jne 0x51551a
mov edx, dword [ebp + 4]
mov ebx, dword [ebp]
jne 0x515105
mov dword [esp + 0x5c], edx
mov dword [esp + 0x98], ebx
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
xor ecx, ecx
jmp 0x5154bb
mov ebp, dword [esp + 0x98]
lea esi, [ebp + edx*8]
mov dword [esi], eax
mov dword [esi + 4], ecx
lea ecx, [edx + 1]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xa0]
mov eax, edi
mov edx, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xd8]
cmp ecx, edx
jge 0x515105
mov dword [esp + 0x38], ecx
shl ecx, 3
cmp ecx, ebp
ja 0x515bfc
mov edx, dword [edi + 0x28]
mov dword [esp], esi
sub ebp, ecx
mov dword [esp + 0x64], 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 + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
jb 0x515477
jmp 0x515bf3
mov edx, 0
mov ebx, 0
jmp 0x515449
mov ebp, dword [esp + 0xe4]
mov edi, 0
mov esi, 0
jmp 0x51537a
cmp ebx, 0x2069b53f
mov ebp, dword [esp + 0xe4]
jmp 0x51542f
cmp ebx, 0xc66cd3
jne 0x51563b
lea eax, [0x901240]
cmp eax, edx
jne 0x515631
mov eax, dword [esp + 0xe4]
je 0x5155eb
cmp ebx, 0x1e2f74f8
jne 0x515105
lea eax, [0x901280]
cmp eax, edx
jne 0x5155e4
mov eax, dword [esp + 0xe4]
jne 0x515105
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x90]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x515105
mov eax, 0
jmp 0x515591
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov dword [ecx], eax
jmp 0x515105
mov eax, 0
jmp 0x515572
cmp ebx, 0x1e2f74f8
jmp 0x51557a
cmp ebx, 0x8237d00c
jbe 0x515913
cmp ebx, 0x9ad926a8
jbe 0x5157c0
cmp ebx, 0xa066c615
jne 0x515681
lea ebp, [0x8f6dc0]
cmp ebp, edx
jne 0x5157b6
mov eax, dword [esp + 0xe4]
je 0x51576e
cmp ebx, 0xe781e5b1
jne 0x515762
lea ebp, [0x904e80]
cmp ebp, edx
jne 0x51574c
mov ebp, dword [esp + 0xe4]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
jne 0x5156e1
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xa0]
xor eax, eax
jmp 0x5156cc
xchg ebp, eax
test al, al
xchg ebp, eax
xchg ebp, ebx
setne bl
xchg ebp, ebx
xchg ebp, ebx
mov byte [edi + eax], bl
xchg ebp, ebx
inc eax
cmp eax, edx
jge 0x515105
movzx ebp, byte [eax + ebx]
cmp eax, esi
jb 0x5156b9
jmp 0x515c66
cmp ebx, 0xee92f42e
jne 0x515105
lea eax, [0x901200]
cmp eax, edx
jne 0x515745
jne 0x515105
mov dword [esp + 0x80], ebp
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0x80]
mov word [ecx], ax
jmp 0x515105
mov ebp, 0
jmp 0x5156f7
mov ebp, dword [esp + 0xe4]
mov edi, 0
mov esi, 0
jmp 0x5156a8
mov ebp, dword [esp + 0xe4]
jmp 0x5156e1
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0x84]
mov word [ecx], ax
jmp 0x515105
mov eax, 0
jmp 0x51567b
cmp ebx, 0x88768e96
jne 0x515904
lea ebp, [0x9076c0]
cmp ebp, edx
jne 0x5158ee
mov ebp, dword [esp + 0xe4]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
jne 0x5158ad
mov dword [esp + 0x98], edi
mov dword [esp + 0x54], esi
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
xor ecx, ecx
jmp 0x515852
mov edi, dword [esp + 0x98]
lea ebp, [edi + edx*8]
mov dword [ebp], ecx
mov dword [ebp + 4], eax
lea ecx, [edx + 1]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0xa0]
mov eax, esi
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov esi, dword [esp + 0x54]
cmp ecx, esi
jge 0x515105
mov dword [esp + 0x3c], ecx
shl ecx, 3
cmp ecx, edx
ja 0x515c0e
mov esi, dword [ebp + 0x28]
mov dword [esp], ebx
sub edx, ecx
mov dword [esp + 0x64], edx
neg edx
sar edx, 0x1f
and ecx, edx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x54]
cmp edx, ebx
jb 0x515815
jmp 0x515c05
cmp ebx, 0x9ad926a8
jne 0x515105
lea ebx, [0x9012c0]
cmp ebx, edx
jne 0x5158e7
jne 0x515105
mov ecx, dword [esp + 0x60]
test ecx, ecx
jbe 0x515c6d
mov eax, dword [esp + 0xa0]
movzx eax, byte [eax]
mov byte [ebp], al
jmp 0x515105
mov ebp, 0
jmp 0x5158c3
mov ebp, dword [esp + 0xe4]
mov edi, 0
mov esi, 0
jmp 0x5157e7
cmp ebx, 0x9ad926a8
mov ebp, dword [esp + 0xe4]
jmp 0x5158b3
cmp ebx, 0x6e0df0d1
jbe 0x515b14
cmp ebx, 0x734d2a16
jne 0x515b02
lea ebp, [0x907680]
cmp ebp, edx
jne 0x515aec
mov ebp, dword [esp + 0xe4]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
jne 0x5159f5
mov dword [esp + 0x98], edi
mov dword [esp + 0x50], esi
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
xor ecx, ecx
jmp 0x5159a2
mov edi, dword [esp + 0x98]
mov dword [edi + ecx*4], eax
inc ecx
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0xa0]
mov eax, esi
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
cmp ecx, esi
jge 0x515105
mov dword [esp + 0x40], ecx
shl ecx, 2
cmp ecx, edx
ja 0x515c32
mov esi, dword [ebp + 0x24]
mov dword [esp], ebx
sub edx, ecx
mov dword [esp + 0x64], edx
neg edx
sar edx, 0x1f
and ecx, edx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
cmp ecx, edx
jb 0x515974
jmp 0x515c29
cmp ebx, 0x8237d00c
jne 0x515105
lea ebx, [0x907640]
cmp ebx, edx
jne 0x515add
mov edx, dword [ebp]
mov ebx, dword [ebp + 4]
jne 0x515105
mov dword [esp + 0x98], edx
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0xa0]
xor ecx, ecx
jmp 0x515a82
mov ebx, dword [esp + 0x98]
mov word [ebx + ecx*2], ax
inc ecx
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0xdc]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xa0]
mov eax, edi
mov edx, ebx
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xd8]
cmp ecx, ebx
jge 0x515105
mov dword [esp + 0x34], ecx
shl ecx, 1
cmp ecx, ebp
ja 0x515c56
mov edx, dword [edi + 0x20]
mov dword [esp], esi
sub ebp, ecx
mov dword [esp + 0x64], 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 + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call edx
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
cmp ecx, edx
jb 0x515a43
jmp 0x515c4d
mov edx, 0
mov ebx, 0
jmp 0x515a15
mov ebp, dword [esp + 0xe4]
mov edi, 0
mov esi, 0
jmp 0x515946
cmp ebx, 0x8237d00c
mov ebp, dword [esp + 0xe4]
jmp 0x5159fb
cmp ebx, 0x6b581726
jne 0x515bd3
lea ebp, [0x8f6e00]
cmp ebp, edx
jne 0x515bc9
mov eax, dword [esp + 0xe4]
je 0x515b83
cmp ebx, 0x6e0df0d1
jne 0x515105
lea ebx, [0x8f0600]
cmp ebx, edx
jne 0x515b7c
mov eax, dword [esp + 0xe4]
jne 0x515105
mov ecx, dword [esp + 0x60]
test ecx, ecx
jbe 0x515c7b
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [ecx]
test cl, cl
setne cl
mov byte [eax], cl
jmp 0x515105
mov eax, 0
jmp 0x515b54
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
mov dword [ecx], eax
jmp 0x515105
mov eax, 0
jmp 0x515b35
cmp ebx, 0x6e0df0d1
jmp 0x515b3d
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
add esp, 0xcc
ret
mov eax, edx
mov ecx, ebx
call fcn.00456b30
mov eax, ecx
mov ecx, ebp
call fcn.00456b90
mov eax, edx
mov ecx, ebx
call fcn.00456b30
mov eax, ecx
mov ecx, edx
call fcn.00456b90
mov eax, ecx
mov ecx, edx
call fcn.00456b30
mov eax, ecx
mov ecx, edx
call fcn.00456b90
mov eax, ecx
mov ecx, edx
call fcn.00456b30
mov eax, ecx
mov ecx, edx
call fcn.00456b90
mov eax, ecx
mov ecx, edx
call fcn.00456b30
mov eax, ecx
mov ecx, edx
call fcn.00456b90
mov eax, ecx
mov ecx, edx
call fcn.00456b30
mov eax, ecx
mov ecx, ebp
call fcn.00456b90
mov ecx, esi
call fcn.00456b30
mov ecx, esi
call fcn.00456b30
xor eax, eax
call fcn.00456b30
xor eax, eax
call fcn.00456b30
xor eax, eax
call fcn.00456b30
nop
call fcn.00455270
jmp fcn.00514c80