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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c]
cmp eax, dword [ecx + 8]
jbe 0x516e73
sub esp, 0x9c
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 4], ecx
call fcn.00519200
mov eax, dword [esp + 8]
test eax, eax
je 0x516b33
mov dword [esp + 0x58], eax
lea ecx, [0x92cb00]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00440170
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x515df6
mov dword [esp + 0x70], eax
mov edx, dword [ecx + 8]
cmp edx, 0x6e0df0d1
ja 0x5163dc
cmp edx, 0x20e38ee7
jbe 0x515fdb
cmp edx, 0x382e7edf
ja 0x515e80
cmp edx, 0x26b80717
jne 0x515d4d
lea ebx, [0x8f6e40]
cmp ebx, ecx
jne 0x515e76
mov ebx, dword [esp + 0xb4]
je 0x515e34
cmp edx, 0x30c31d62
jne 0x515e25
lea ebx, [0x907700]
cmp ebx, ecx
jne 0x515e0f
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx]
mov esi, dword [ebx + 4]
jne 0x515dd4
mov edx, dword [esp + 0x58]
xor ecx, ecx
jmp 0x515d81
mov byte [eax + ecx], bl
inc ecx
cmp ecx, esi
jge 0x515d93
movzx ebx, byte [ebp + ecx]
cmp ecx, edx
jb 0x515d7d
jmp 0x516e2d
mov ecx, edx
mov ebx, dword [esp + 0xa0]
mov ebx, dword [ebx + 0x10]
mov ebp, dword [esp + 0xa4]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call ebx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x9c
ret
cmp edx, 0x382e7edf
jne 0x515df6
lea edx, [0x909bc0]
cmp edx, ecx
jne 0x515dfe
mov ecx, dword [ebx + 8]
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
jne 0x515df6
mov eax, edx
mov edx, ebx
jmp 0x515d95
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ecx, 0
mov ebx, 0
mov edx, 0
jmp 0x515dee
mov ebx, dword [esp + 0xb4]
mov ebp, 0
mov esi, 0
jmp 0x515d73
cmp edx, 0x382e7edf
mov ebx, dword [esp + 0xb4]
jmp 0x515dda
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
mov ebp, dword [esp + 0xac]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x58]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ebx, 0
jmp 0x515d47
cmp edx, 0x663e425f
ja 0x515f10
cmp edx, 0x5fcadfef
jne 0x515f08
lea ebx, [0x8f6e80]
cmp ebx, ecx
jne 0x515f01
mov ebx, dword [esp + 0xb4]
jne 0x515ebf
movzx edx, byte [ebx]
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e3d
mov byte [eax], dl
mov edx, ecx
jmp 0x515d95
cmp edx, 0x663e425f
jne 0x515df6
lea edx, [0x92cb00]
cmp edx, ecx
jne 0x515efa
mov edx, dword [esp + 0xb4]
movzx edx, byte [edx]
jne 0x515df6
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e1f
mov byte [eax], dl
mov edx, ecx
jmp 0x515d95
mov edx, 0
jmp 0x515edf
mov ebx, 0
jmp 0x515ea5
cmp edx, 0x663e425f
jmp 0x515ec5
cmp edx, 0x6b581726
jne 0x515fd0
lea ebx, [0x8f6e00]
cmp ebx, ecx
jne 0x515fc6
mov ebx, dword [esp + 0xb4]
je 0x515f8b
cmp edx, 0x6e0df0d1
jne 0x515df6
lea edx, [0x8f0600]
cmp edx, ecx
jne 0x515f84
mov ecx, dword [esp + 0xb4]
jne 0x515df6
movzx edx, byte [ecx]
test dl, dl
je 0x515f73
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e6b
mov byte [eax], 1
mov edx, ecx
jmp 0x515d95
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e64
mov byte [eax], 0
jmp 0x515f6c
mov ecx, 0
jmp 0x515f50
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ebx]
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ebx, 0
jmp 0x515f31
cmp edx, 0x6e0df0d1
jmp 0x515f39
cmp edx, 0x1e2f74f8
jbe 0x51629c
cmp edx, 0x1f1d91d4
jne 0x516290
lea ebx, [0x909b40]
cmp ebx, ecx
jne 0x51627a
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
jne 0x5160b0
mov dword [esp + 0x6c], esi
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0xa8]
xor ecx, ecx
jmp 0x516090
mov ebp, dword [edi + 0x14]
mov dword [esp], edx
sub ebx, ecx
mov dword [esp + 0x5c], ebx
neg ebx
sar ebx, 0x1f
and ecx, ebx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
call ebp
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov eax, esi
mov ebp, dword [esp + 0x24]
mov esi, edi
mov edi, dword [esp + 0xa8]
cmp ecx, ebp
jge 0x5160a7
mov dword [esp + 0x4c], ecx
mov esi, dword [esi + ecx*4]
shl ecx, 2
cmp ecx, ebx
jbe 0x516031
jmp 0x516dfb
mov edx, ebx
mov ecx, edx
jmp 0x515d95
cmp edx, 0x2069b53f
jne 0x51626f
lea ebp, [0x909b80]
cmp ebp, ecx
jne 0x516260
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
jne 0x51617b
mov dword [esp + 0x6c], esi
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0xa8]
xor ecx, ecx
jmp 0x516156
mov edi, dword [edi + 0x18]
mov dword [esp], edx
sub ebx, ecx
mov dword [esp + 0x5c], ebx
neg ebx
sar ebx, 0x1f
and ecx, ebx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
call edi
mov eax, dword [esp + 0x50]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x6c]
mov eax, ebp
mov ebp, dword [esp + 0x20]
mov esi, edi
mov edi, dword [esp + 0xa8]
cmp ecx, ebp
jge 0x516172
mov dword [esp + 0x50], ecx
lea esi, [esi + ecx*8]
mov ebp, dword [esi]
mov esi, dword [esi + 4]
shl ecx, 3
cmp ecx, ebx
jbe 0x5160f3
jmp 0x516de9
mov edx, ebx
mov ecx, edx
jmp 0x515d95
cmp edx, 0x20e38ee7
jne 0x515df6
lea edx, [0x909b00]
cmp edx, ecx
jne 0x516251
mov edx, dword [ebx + 4]
mov ebx, dword [ebx]
jne 0x515df6
mov dword [esp + 0x30], edx
mov dword [esp + 0x6c], ebx
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0xa8]
xor ecx, ecx
jmp 0x51622d
mov edx, dword [edi + 0x10]
mov dword [esp], ebp
sub esi, ecx
mov dword [esp + 0x5c], 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 + 0x5c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov word [esp + 0x10], bx
call edx
mov eax, dword [esp + 0x3c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov eax, esi
mov edx, dword [esp + 0x30]
mov ebx, edi
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0xa8]
cmp ecx, edx
jge 0x516248
mov dword [esp + 0x3c], ecx
movzx ebx, word [ebx + ecx*2]
shl ecx, 1
cmp ecx, esi
jbe 0x5161be
jmp 0x516e0d
mov edx, esi
mov ecx, edx
jmp 0x515d95
mov edx, 0
mov ebx, 0
jmp 0x51619a
mov esi, 0
mov ebp, 0
jmp 0x5160cf
cmp edx, 0x20e38ee7
jmp 0x516181
mov ebx, dword [esp + 0xb4]
mov esi, 0
mov ebp, 0
jmp 0x51600d
mov ebx, dword [esp + 0xb4]
jmp 0x5160b0
cmp edx, 0xc66cd3
jne 0x5162bf
lea ebx, [0x901240]
cmp ebx, ecx
jne 0x5163d2
mov ebx, dword [esp + 0xb4]
je 0x516397
cmp edx, 0x13ff06c5
jne 0x516388
lea ebx, [0x926640]
cmp ebx, ecx
jne 0x516377
mov ebx, dword [esp + 0xb4]
movzx ebp, byte [ebx]
jne 0x516312
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x516301
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e5d
mov byte [eax], 1
mov edx, ecx
jmp 0x515d95
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e56
mov byte [eax], 0
jmp 0x5162fa
cmp edx, 0x1e2f74f8
jne 0x515df6
lea edx, [0x901280]
cmp edx, ecx
jne 0x516370
jne 0x515df6
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
mov ebp, dword [esp + 0xac]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x58]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ebx, 0
jmp 0x516328
mov ebx, dword [esp + 0xb4]
mov ebp, 0
jmp 0x5162e3
cmp edx, 0x1e2f74f8
mov ebx, dword [esp + 0xb4]
jmp 0x516318
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ebx]
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ebx, 0
jmp 0x5162b9
cmp edx, 0xa066c615
jbe 0x5166d2
cmp edx, 0xd04ae83d
jbe 0x5165b2
cmp edx, 0xecd580ce
ja 0x5164e5
cmp edx, 0xe781e5b1
jne 0x5164d6
lea ebx, [0x904e80]
cmp ebx, ecx
jne 0x5164c0
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
jne 0x516460
mov edx, dword [esp + 0x58]
xor ecx, ecx
jmp 0x516431
inc ecx
cmp ecx, ebp
jge 0x516459
movzx ebx, byte [esi + ecx]
test bl, bl
je 0x51644b
cmp ecx, edx
jae 0x516e4d
mov byte [eax + ecx], 1
jmp 0x516430
cmp ecx, edx
jae 0x516e44
mov byte [eax + ecx], 0
jmp 0x516430
mov ecx, edx
jmp 0x515d95
cmp edx, 0xecd580ce
jne 0x515df6
lea edx, [0x92bac0]
cmp edx, ecx
jne 0x5164b9
movzx ecx, word [ebx]
jne 0x515df6
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x10]
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], cx
call edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ecx, 0
jmp 0x516479
mov ebx, dword [esp + 0xb4]
mov ebp, 0
mov esi, 0
jmp 0x516426
cmp edx, 0xecd580ce
mov ebx, dword [esp + 0xb4]
jmp 0x516466
cmp edx, 0xee92f42e
jne 0x516504
lea ebx, [0x901200]
cmp ebx, ecx
jne 0x5165a8
mov ebx, dword [esp + 0xb4]
je 0x51656b
cmp edx, 0xeff20ea0
jne 0x515df6
lea edx, [0x92ca40]
cmp edx, ecx
jne 0x516564
mov ecx, dword [esp + 0xb4]
movzx ecx, word [ecx]
jne 0x515df6
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x10]
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], cx
call edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ecx, 0
jmp 0x516524
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x10]
movzx edx, word [ebx]
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], dx
call ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ebx, 0
jmp 0x516502
cmp edx, 0xbbad4102
jne 0x5166c6
lea ebx, [0x92bb00]
cmp ebx, ecx
jne 0x5166b5
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx]
je 0x51667c
cmp edx, 0xcc06c027
jne 0x516674
lea ebp, [0x92bb80]
cmp ebp, ecx
jne 0x51666d
movzx ebp, byte [ebx]
jne 0x51660f
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e36
xchg ebp, ebx
mov byte [eax], bl
xchg ebp, ebx
mov edx, ecx
jmp 0x515d95
cmp edx, 0xd04ae83d
jne 0x515df6
lea edx, [0x92ca80]
cmp edx, ecx
jne 0x516666
mov ecx, dword [ebx]
jne 0x515df6
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x14]
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ecx, 0
jmp 0x516627
mov ebp, 0
jmp 0x5165f4
cmp edx, 0xd04ae83d
jmp 0x516615
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0xac]
mov dword [esp], edx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
call ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ebx, dword [esp + 0xb4]
mov ebp, 0
jmp 0x5165d5
mov ebx, dword [esp + 0xb4]
jmp 0x5165db
cmp edx, 0x86318d2e
ja 0x51690d
cmp edx, 0x734d2a16
jne 0x516901
lea ebx, [0x907680]
cmp ebx, ecx
jne 0x5168eb
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
jne 0x5167a7
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x6c], esi
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0xa8]
xor ecx, ecx
jmp 0x516787
mov ebp, dword [edi + 0x14]
mov dword [esp], edx
sub ebx, ecx
mov dword [esp + 0x5c], ebx
neg ebx
sar ebx, 0x1f
and ecx, ebx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
call ebp
mov eax, dword [esp + 0x40]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov eax, esi
mov ebp, dword [esp + 0x2c]
mov esi, edi
mov edi, dword [esp + 0xa8]
cmp ecx, ebp
jge 0x51679e
mov dword [esp + 0x40], ecx
mov esi, dword [esi + ecx*4]
shl ecx, 2
cmp ecx, ebx
jbe 0x516728
jmp 0x516e04
mov edx, ebx
mov ecx, edx
jmp 0x515d95
cmp edx, 0x8237d00c
jne 0x5168e3
lea ebp, [0x907640]
cmp ebp, ecx
jne 0x5168d4
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
jne 0x51686a
mov dword [esp + 0x6c], esi
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0xa8]
xor ecx, ecx
jmp 0x51684a
mov ebp, dword [edi + 0x10]
mov dword [esp], edx
sub ebx, ecx
mov dword [esp + 0x5c], ebx
neg ebx
sar ebx, 0x1f
and ecx, ebx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov word [esp + 0x10], si
call ebp
mov eax, dword [esp + 0x44]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov eax, esi
mov ebp, dword [esp + 0x1c]
mov esi, edi
mov edi, dword [esp + 0xa8]
cmp ecx, ebp
jge 0x516861
mov dword [esp + 0x44], ecx
movzx esi, word [esi + ecx*2]
shl ecx, 1
cmp ecx, ebx
jbe 0x5167ea
jmp 0x516e16
mov edx, ebx
mov ecx, edx
jmp 0x515d95
cmp edx, 0x86318d2e
jne 0x515df6
lea edx, [0x92cac0]
cmp edx, ecx
jne 0x5168c8
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
jne 0x515df6
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx + 0x18]
mov ebp, dword [esp + 0xac]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x58]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call ebx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ecx, 0
mov edx, 0
jmp 0x516885
mov esi, 0
mov ebp, 0
jmp 0x5167c6
cmp edx, 0x86318d2e
jmp 0x516870
mov ebx, dword [esp + 0xb4]
mov ebp, 0
mov esi, 0
jmp 0x516704
mov ebx, dword [esp + 0xb4]
jmp 0x5167a7
cmp edx, 0x963f9bff
ja 0x516a7f
cmp edx, 0x88768e96
jne 0x516a6d
lea ebx, [0x9076c0]
cmp ebx, ecx
jne 0x516a57
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx]
jne 0x5169ed
mov dword [esp + 0x6c], esi
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0xa8]
xor ecx, ecx
jmp 0x5169c8
mov edi, dword [edi + 0x18]
mov dword [esp], edx
sub ebx, ecx
mov dword [esp + 0x5c], ebx
neg ebx
sar ebx, 0x1f
and ecx, ebx
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebp
call edi
mov eax, dword [esp + 0x48]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x6c]
mov eax, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0xa8]
cmp ecx, ebp
jge 0x5169e4
mov dword [esp + 0x48], ecx
lea esi, [esi + ecx*8]
mov ebp, dword [esi + 4]
mov esi, dword [esi]
shl ecx, 3
cmp ecx, ebx
jbe 0x516963
jmp 0x516df2
mov edx, ebx
mov ecx, edx
jmp 0x515d95
cmp edx, 0x963f9bff
jne 0x515df6
lea edx, [0x92bb40]
cmp edx, ecx
jne 0x516a4b
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
jne 0x515df6
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx + 0x18]
mov ebp, dword [esp + 0xac]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x58]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call ebx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov edx, 0
mov ecx, 0
jmp 0x516a08
mov ebx, dword [esp + 0xb4]
mov esi, 0
mov ebp, 0
jmp 0x51693f
cmp edx, 0x963f9bff
mov ebx, dword [esp + 0xb4]
jmp 0x5169f3
cmp edx, 0x9ad926a8
jne 0x516b2b
lea ebx, [0x9012c0]
cmp ebx, ecx
jne 0x516b21
mov ebx, dword [esp + 0xb4]
jne 0x516aba
movzx edx, byte [ebx]
mov ecx, dword [esp + 0x58]
test ecx, ecx
jbe 0x516e26
mov byte [eax], dl
mov edx, ecx
jmp 0x515d95
cmp edx, 0xa066c615
jne 0x515df6
lea edx, [0x8f6dc0]
cmp edx, ecx
jne 0x516b1a
mov ecx, dword [esp + 0xb4]
jne 0x515df6
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x10]
movzx ecx, word [ecx]
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
mov word [esp + 0x10], cx
call edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov ecx, edx
jmp 0x515d95
mov ecx, 0
jmp 0x516ad7
mov ebx, 0
jmp 0x516aa0
cmp edx, 0xa066c615
jmp 0x516ac0
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x516dd7
nop
movzx edx, byte [0xe7b378]
test dl, dl
je 0x516dcb
mov dword [0xe7b37c], ecx
mov edx, dword [0xe8ff30]
test edx, edx
jne 0x516db4
mov eax, dword [esp + 0xb4]
mov dword [0xe7b380], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x516da7
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x516ba1
or ebx, 0x80
mov ebp, eax
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
je 0x516d86
mov dword [esp + 0x34], esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00516e80
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x516ca3
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x516c9a
lea ecx, [0xab2080]
mov ecx, dword [ecx + 0x80]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x9df283]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1b
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00443570
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x68], ecx
lea edx, [0x94a0a0]
mov dword [esp], edx
call fcn.0040af00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [0xe8ff30]
test eax, eax
jne 0x516c8f
mov eax, dword [esp + 0x68]
mov dword [edi], eax
lea eax, [0xaa4cf0]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edi
add esp, 0x9c
ret
mov eax, dword [esp + 0x68]
call fcn.00456ab0
jmp 0x516c74
xor ecx, ecx
xor eax, eax
jmp 0x516c02
mov dword [esp + 0x54], eax
lea ecx, [0x92cb00]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00440170
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], eax
lea edi, [esp + 0x84]
xor eax, eax
call fcn.00456d7a
lea edi, [esp + 0x84]
call fcn.00456d7a
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
lea edx, [esp + 0x84]
mov dword [esp], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
call fcn.00517dd0
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x9c
ret
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0048c4c0
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jmp 0x516bb2
mov ebp, eax
xor ebx, ebx
xor eax, eax
xor edx, edx
jmp 0x516ba3
lea edi, [0xe7b380]
mov eax, dword [esp + 0xb4]
call fcn.00456ab0
jmp 0x516b73
mov eax, dword [esp + 0xb4]
jmp 0x516b73
mov ebp, dword [esp + 0xb4]
xor ebx, ebx
xor eax, eax
xor edx, edx
jmp 0x516ba3
mov eax, ecx
mov ecx, ebx
call fcn.00456b90
mov eax, ecx
mov ecx, ebx
call fcn.00456b90
mov eax, ecx
mov ecx, ebx
call fcn.00456b90
mov eax, ecx
mov ecx, ebx
call fcn.00456b90
mov eax, ecx
mov ecx, esi
call fcn.00456b90
mov eax, ecx
mov ecx, ebx
call fcn.00456b90
xor eax, eax
call fcn.00456b30
xor eax, eax
call fcn.00456b30
mov eax, ecx
mov ecx, edx
call fcn.00456b30
xor eax, eax
call fcn.00456b30
xor eax, eax
call fcn.00456b30
mov eax, ecx
mov ecx, edx
call fcn.00456b30
mov eax, ecx
mov ecx, edx
call fcn.00456b30
xor eax, eax
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.00515c90