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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x140]
cmp eax, dword [ecx + 8]
jbe 0x5212cc
sub esp, 0x1c0
mov ebx, dword [esp + 0x1c8]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x520341
xchg ebp, eax
cmp al, 4
xchg ebp, eax
ja 0x51fea4
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jbe 0x51fd51
xchg ebp, eax
cmp al, 3
xchg ebp, eax
jne 0x51fcf0
mov ebp, dword [ebx + 0x18]
test ebp, ebp
je 0x51fbe3
mov dword [esp + 0x88], ebp
mov esi, dword [esp + 0x1c4]
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
xor eax, eax
mov dword [esp + 0x5c], eax
xor eax, eax
jmp 0x521141
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x190]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x190], 6
mov ecx, dword [esp + 0x1c4]
mov ecx, dword [ecx]
mov ebx, dword [ecx]
mov ebp, dword [ecx + 8]
mov eax, edx
mov edx, dword [ecx + 4]
inc edx
cmp ebp, edx
jae 0x51fc84
mov dword [esp + 0xb4], ecx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x51fc72
mov dword [edi], eax
jmp 0x51fc77
call fcn.00462400
mov edx, ecx
mov ebx, eax
mov eax, dword [esp + 0x88]
mov ecx, edi
mov dword [ecx + 4], edx
lea ecx, [edx + edx*2]
lea edi, [ebx + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x51fca6
lea esi, [esp + 0x190]
call fcn.00462af4
jmp 0x51fcca
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
movzx ebx, word [ebx + 2]
mov ebp, dword [esp + 0x1c4]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], bx
call fcn.00521930
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x1d8], bl
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 1
xchg ebp, eax
je 0x51fe74
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x520e51
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x1a8]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x1a8], 6
mov ecx, dword [esp + 0x1c4]
mov ecx, dword [ecx]
mov ebx, dword [ecx]
mov ebp, dword [ecx + 8]
mov eax, edx
mov edx, dword [ecx + 4]
inc edx
cmp ebp, edx
jae 0x51fe08
mov dword [esp + 0xb4], ecx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x51fdf6
mov dword [edi], eax
jmp 0x51fdfb
call fcn.00462400
mov edx, ecx
mov ebx, eax
mov eax, dword [esp + 0x88]
mov ecx, edi
mov dword [ecx + 4], edx
lea ecx, [edx + edx*2]
lea edi, [ebx + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x51fe2a
lea esi, [esp + 0x1a8]
call fcn.00462af4
jmp 0x51fe4e
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x1a8]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
mov byte [esp + 0x1d8], 0
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 6
xchg ebp, eax
ja 0x51ff86
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x51ff1e
mov eax, dword [0x780cb0]
mov ecx, dword [0x780cb4]
mov edx, dword [0x780cb8]
mov ebx, dword [esp + 0x1c4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], 0
call fcn.00521930
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x1d8], bl
add esp, 0x1c0
ret
mov eax, dword [0x780ca0]
mov ecx, dword [0x780ca4]
mov edx, dword [0x780ca8]
mov ebx, dword [esp + 0x1c4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], 0
call fcn.00521930
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x1d8], bl
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 7
xchg ebp, eax
jne 0x5200c8
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x178]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x178], 3
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [ecx]
mov ebp, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 8]
mov esi, ecx
mov ecx, dword [ebx + 4]
inc ecx
cmp edx, ecx
jae 0x520039
mov dword [esp + 0xb4], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x520022
mov dword [edi], eax
jmp 0x520027
call fcn.00462400
mov ebx, edi
mov esi, dword [esp + 0x1c4]
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 4], ecx
lea ecx, [ecx + ecx*2]
lea edi, [ebp + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x52005b
lea esi, [esp + 0x178]
call fcn.00462af4
jmp 0x52007f
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x178]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x521108
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 1
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jne 0x52020a
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x160]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x160], 3
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [ecx]
mov ebp, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 8]
mov esi, ecx
mov ecx, dword [ebx + 4]
inc ecx
cmp edx, ecx
jae 0x52017b
mov dword [esp + 0xb4], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x520164
mov dword [edi], eax
jmp 0x520169
call fcn.00462400
mov ebx, edi
mov esi, dword [esp + 0x1c4]
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 4], ecx
lea ecx, [ecx + ecx*2]
lea edi, [ebp + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x52019d
lea esi, [esp + 0x160]
call fcn.00462af4
jmp 0x5201c1
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x160]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x521103
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 2
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x148]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x148], 3
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [ecx]
mov ebp, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 8]
mov esi, ecx
mov ecx, dword [ebx + 4]
inc ecx
cmp edx, ecx
jae 0x5202b2
mov dword [esp + 0xb4], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x52029b
mov dword [edi], eax
jmp 0x5202a0
call fcn.00462400
mov ebx, edi
mov esi, dword [esp + 0x1c4]
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 4], ecx
lea ecx, [ecx + ecx*2]
lea edi, [ebp + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x5202d4
lea esi, [esp + 0x148]
call fcn.00462af4
jmp 0x5202f8
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x148]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x5210fe
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 4
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
ja 0x5209e6
xchg ebp, eax
cmp al, 0xb
xchg ebp, eax
jbe 0x52076d
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
je 0x520636
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x88], ebp
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0xe8]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0xe8], 2
mov ecx, dword [esp + 0x1c4]
mov esi, ebx
mov ebx, dword [ecx]
mov edi, ebp
mov ebp, dword [ebx]
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 4]
inc ecx
cmp edx, ecx
jae 0x520416
mov dword [esp + 0xb4], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x5203fd
mov dword [edi], eax
jmp 0x520402
call fcn.00462400
mov ebx, edi
mov esi, dword [esp + 0x1c8]
mov edi, dword [esp + 0x88]
mov ebp, eax
xor eax, eax
mov dword [ebx + 4], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ebp + ecx*8 - 0x18]
mov edx, dword [0x7adde0]
test edx, edx
jne 0x52043e
mov edx, edi
mov edi, ecx
mov ebx, esi
lea esi, [esp + 0xe8]
call fcn.00462af4
jmp 0x52046b
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [esp + 0xe8]
mov dword [esp + 8], eax
call fcn.00410770
xor eax, eax
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x1c4]
mov esi, dword [ebp]
mov ecx, dword [esi + 4]
mov esi, dword [esi]
mov edi, dword [esp + 0x84]
cmp edi, ecx
jae 0x5210f7
shl edx, 1
mov ecx, edi
lea edi, [edi + edi*2]
lea esi, [esi + edi*8 + 8]
mov dword [esi], edx
mov esi, dword [ebp]
inc edx
cmp dword [esi + 0x10], edx
jge 0x5204a2
mov dword [esi + 0x10], edx
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 4]
test edx, edx
jbe 0x5210ee
mov eax, dword [esi]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0051fb60
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax]
mov edx, dword [esp + 0x1c8]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x80], ebx
nop
mov ebp, dword [esp + 8]
mov dword [esp + 0x7c], ebp
movzx esi, byte [esp + 0x14]
xchg esi, eax
mov byte [esp + 0x37], al
xchg esi, eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x78], ecx
lea edi, [esp + 0xd0]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0xd0], 2
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax]
mov edi, dword [ecx]
mov ebx, dword [ecx + 8]
mov esi, dword [ecx + 4]
inc esi
cmp ebx, esi
jae 0x520594
mov dword [esp + 0xb4], ecx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x520577
mov dword [edi], eax
jmp 0x52057c
call fcn.00462400
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0x7c]
mov esi, ecx
mov ecx, edi
mov edi, eax
mov eax, dword [esp + 0x1c4]
mov dword [ecx + 4], esi
lea ecx, [esi + esi*2]
lea edi, [edi + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x5205b6
lea esi, [esp + 0xd0]
call fcn.00462af4
jmp 0x5205e5
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xd0]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x1c4]
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0x7c]
mov ebx, dword [eax]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx]
mov esi, dword [esp + 0x78]
cmp esi, ecx
jae 0x5210e7
shl edx, 1
or edx, 1
lea edi, [esi + esi*2]
lea ebx, [ebx + edi*8 + 8]
mov dword [ebx], edx
mov ebx, dword [eax]
inc edx
cmp dword [ebx + 0x10], edx
jge 0x520611
mov dword [ebx + 0x10], edx
mov edx, dword [esp + 0x84]
test edx, edx
je 0x520620
test ebp, ebp
jne 0x52062b
xor ebx, ebx
xor ecx, ecx
xor edx, edx
jmp 0x521043
mov ebx, edx
shl edx, 1
mov edi, dword [eax]
jmp 0x520ffb
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x100]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x100], 3
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [ecx]
mov ebp, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 8]
mov esi, ecx
mov ecx, dword [ebx + 4]
inc ecx
cmp edx, ecx
jae 0x5206de
mov dword [esp + 0xb4], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x5206c7
mov dword [edi], eax
jmp 0x5206cc
call fcn.00462400
mov ebx, edi
mov esi, dword [esp + 0x1c4]
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 4], ecx
lea ecx, [ecx + ecx*2]
lea edi, [ebp + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x520700
lea esi, [esp + 0x100]
call fcn.00462af4
jmp 0x520724
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x100]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x520feb
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 0x20
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
jne 0x5208af
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x130], 3
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [ecx]
mov ebp, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 8]
mov esi, ecx
mov ecx, dword [ebx + 4]
inc ecx
cmp edx, ecx
jae 0x520820
mov dword [esp + 0xb4], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x520809
mov dword [edi], eax
jmp 0x52080e
call fcn.00462400
mov ebx, edi
mov esi, dword [esp + 0x1c4]
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 4], ecx
lea ecx, [ecx + ecx*2]
lea edi, [ebp + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x520842
lea esi, [esp + 0x130]
call fcn.00462af4
jmp 0x520866
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x130]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x520fe6
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 8
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x118]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0x118], 3
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [ecx]
mov ebp, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 8]
mov esi, ecx
mov ecx, dword [ebx + 4]
inc ecx
cmp edx, ecx
jae 0x520957
mov dword [esp + 0xb4], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x520940
mov dword [edi], eax
jmp 0x520945
call fcn.00462400
mov ebx, edi
mov esi, dword [esp + 0x1c4]
mov ebp, eax
mov eax, dword [esp + 0x88]
mov dword [ebx + 4], ecx
lea ecx, [ecx + ecx*2]
lea edi, [ebp + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x520979
lea esi, [esp + 0x118]
call fcn.00462af4
jmp 0x52099d
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x118]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x520fe1
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 0x10
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 0xf
xchg ebp, eax
jbe 0x520c09
xchg ebp, eax
cmp al, 0x10
xchg ebp, eax
je 0x520b69
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x520b3b
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
je 0x520a2e
mov dword [esp + 0x88], ecx
mov dword [esp + 0xb0], edx
xor eax, eax
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x520e8f
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0xb8]
xor eax, eax
call fcn.0046261a
mov byte [esp + 0xb8], 6
mov ecx, dword [esp + 0x1c4]
mov ecx, dword [ecx]
mov ebx, dword [ecx]
mov ebp, dword [ecx + 8]
mov eax, edx
mov edx, dword [ecx + 4]
inc edx
cmp ebp, edx
jae 0x520acf
mov dword [esp + 0xb4], ecx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5bda40]
mov dword [esp + 0x10], eax
call fcn.00449e30
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
mov dword [edi + 8], edx
mov edx, dword [0x7adde0]
test edx, edx
jne 0x520abd
mov dword [edi], eax
jmp 0x520ac2
call fcn.00462400
mov edx, ecx
mov ebx, eax
mov eax, dword [esp + 0x88]
mov ecx, edi
mov dword [ecx + 4], edx
lea ecx, [edx + edx*2]
lea edi, [ebx + ecx*8 - 0x18]
mov ecx, dword [0x7adde0]
test ecx, ecx
jne 0x520af1
lea esi, [esp + 0xb8]
call fcn.00462af4
jmp 0x520b15
lea eax, [0x5bda40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xb8]
mov dword [esp + 8], eax
call fcn.00410770
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1cc], eax
shl eax, 1
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], 1
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 0x13
xchg ebp, eax
jne 0x520e51
mov eax, dword [ebx + 4]
mov dword [esp + 0xac], eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x88], ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x520e24
mov edx, dword [ebx + 8]
mov ebp, dword [ebx + 4]
test edx, edx
jbe 0x520d70
mov eax, dword [ebp]
mov ecx, dword [esp + 0x1c4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0051fb60
mov eax, dword [esp + 0x1c8]
movzx eax, word [eax + 2]
test ax, 0x20
setne al
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
movzx ebp, byte [esp + 0x14]
mov esi, dword [esp + 0x1c4]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
xchg ebp, eax
mov byte [esp + 0x10], al
xchg ebp, eax
mov byte [esp + 0x14], al
call fcn.005214f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x1d8], bl
add esp, 0x1c0
ret
xchg ebp, eax
cmp al, 0xe
xchg ebp, eax
jne 0x520cb4
mov edx, dword [ebx + 8]
mov ebp, dword [ebx + 4]
test edx, edx
jbe 0x520d67
mov eax, dword [ebp]
mov ecx, dword [esp + 0x1c4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0051fb60
mov eax, dword [esp + 0x1c8]
movzx eax, word [eax + 2]
test ax, 0x20
setne al
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
movzx ebp, byte [esp + 0x14]
mov esi, dword [esp + 0x1c4]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
xchg ebp, eax
mov byte [esp + 0x10], al
xchg ebp, eax
mov byte [esp + 0x14], al
call fcn.00521810
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], edx
mov byte [esp + 0x1d8], bl
add esp, 0x1c0
ret
mov edx, dword [ebx + 8]
mov ebp, dword [ebx + 4]
test edx, edx
jbe 0x520d5e
mov eax, dword [ebp]
mov ecx, dword [esp + 0x1c4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0051fb60
mov eax, dword [esp + 0x1c8]
movzx eax, word [eax + 2]
test ax, 0x20
setne al
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov dword [esp + 0x3c], ebx
movzx ebp, byte [esp + 0x14]
xchg ebp, eax
mov byte [esp + 0x36], al
xchg ebp, eax
mov esi, dword [esp + 0x1c4]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
xchg ebp, eax
mov byte [esp + 0x10], al
xchg ebp, eax
mov byte [esp + 0x14], al
call fcn.00521680
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1cc], edx
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], ecx
movzx eax, byte [esp + 0x36]
mov byte [esp + 0x1d8], al
add esp, 0x1c0
ret
xor eax, eax
mov ecx, eax
call fcn.00462480
xor eax, eax
mov ecx, eax
call fcn.00462480
xor eax, eax
mov ecx, eax
call fcn.00462480
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], ebp
xchg edi, eax
mov byte [esp + 0x38], al
xchg edi, eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0x84], edx
mov ecx, dword [eax + edx*4]
mov ebx, dword [esp + 0x1c4]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0051fb60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1c4]
mov dword [esp], ebp
mov esi, dword [esp + 0x6c]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0xc], esi
movzx esi, byte [esp + 0x38]
xchg esi, eax
mov byte [esp + 0x10], al
xchg esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov byte [esp + 0x20], bl
call fcn.005212e0
mov eax, dword [esp + 0x84]
lea edx, [eax + 1]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
movzx edi, byte [esp + 0x30]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x88]
cmp edx, ecx
jl 0x520d79
mov dword [esp + 0x1cc], esi
mov dword [esp + 0x1d0], ebp
mov dword [esp + 0x1d4], ebx
xchg edi, eax
mov byte [esp + 0x1d8], al
xchg edi, eax
add esp, 0x1c0
ret
lea eax, [0x5a6c60]
mov dword [esp], eax
lea eax, [0x62d3d8]
mov dword [esp + 4], eax
call fcn.00435360
mov edx, dword [esp + 0x44]
inc edx
mov esi, eax
mov edi, ecx
mov ecx, dword [esp + 0x88]
mov eax, edx
mov edx, dword [esp + 0xb0]
mov ecx, ebx
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x88]
cmp eax, ecx
jge 0x520f5b
mov dword [esp + 0x44], eax
mov edi, dword [edx + eax*4]
test eax, eax
jne 0x520ece
mov eax, dword [esp + 0x1c4]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0051fb60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, eax
mov eax, ecx
mov ecx, edx
jmp 0x520e69
xchg ebp, eax
mov byte [esp + 0x39], al
xchg ebp, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x1c4]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0051fb60
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x70]
test ebp, ebp
je 0x520f0c
test edx, edx
jne 0x520f19
xor ecx, ecx
xor ebp, ebp
xor eax, eax
xor ebx, ebx
jmp 0x520e69
mov byte [esp + 0x3b], bl
mov edi, dword [esp + 0x1c4]
mov esi, edi
mov edi, dword [edi]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x94]
jmp 0x520f9b
movzx edx, byte [esp + 0x39]
test dl, dl
jne 0x520e69
xor ebx, ebx
jmp 0x520e69
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1d4], edi
xchg ebp, eax
mov byte [esp + 0x1d8], al
xchg ebp, eax
add esp, 0x1c0
ret
mov edi, dword [esp + 0x9c]
movzx ebx, byte [esp + 0x3b]
mov esi, dword [esp + 0x1c4]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x48]
test esi, esi
je 0x520f47
mov ebp, dword [edi]
mov ebx, dword [edi + 4]
shr esi, 1
cmp ebx, esi
jbe 0x520fd8
lea ebx, [esi + esi*2]
lea esi, [ebp + ebx*8]
mov edi, dword [esp + 0x48]
test edi, 1
jne 0x520fcb
lea ebx, [ebp + ebx*8 + 4]
mov ebp, dword [ebx]
mov dword [ebx], edx
jmp 0x520f80
mov esi, dword [esi + 8]
lea ebx, [ebp + ebx*8 + 8]
mov dword [ebx], edx
mov ebp, esi
jmp 0x520f80
mov eax, esi
mov ecx, ebx
call fcn.00462490
call fcn.00462490
call fcn.00462490
call fcn.00462490
mov esi, ecx
mov edx, ebx
mov ebx, dword [esp + 0x84]
test edx, edx
je 0x521037
mov dword [esp + 0x50], edx
mov ecx, esi
mov esi, dword [edi]
mov ebx, dword [edi + 4]
shr edx, 1
cmp ebx, edx
jbe 0x5210de
lea edx, [edx + edx*2]
mov ebx, dword [esp + 0x50]
test ebx, 1
jne 0x52102d
lea edx, [esi + edx*8 + 4]
mov ebx, dword [edx]
mov dword [edx], ebp
jmp 0x520ff0
lea edx, [esi + edx*8 + 8]
mov ebx, dword [edx]
mov dword [edx], ebp
jmp 0x520ff0
mov ecx, dword [esp + 0x80]
movzx edx, byte [esp + 0x37]
test ebx, ebx
je 0x521056
test esi, esi
je 0x521056
mov ebp, dword [eax]
mov dword [esp + 0xa0], ebp
jmp 0x52108e
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov byte [esp + 0x1d8], dl
add esp, 0x1c0
ret
mov ebp, dword [esp + 0xa0]
mov edx, eax
mov edi, ebx
mov ebx, ecx
mov ecx, edi
test ecx, ecx
je 0x5210cd
mov dword [esp + 0x4c], ecx
mov edi, dword [ebp]
mov eax, edx
mov edx, dword [ebp + 4]
shr ecx, 1
cmp edx, ecx
jbe 0x5210d5
lea edx, [ecx + ecx*2]
mov ecx, ebx
lea ebx, [edi + edx*8]
mov ebp, dword [esp + 0x4c]
test ebp, 1
jne 0x5210c2
lea edx, [edi + edx*8 + 4]
mov ebx, dword [edx]
mov dword [edx], esi
jmp 0x52107f
mov ebx, dword [ebx + 8]
lea edx, [edi + edx*8 + 8]
mov dword [edx], esi
jmp 0x52107f
shl esi, 1
mov eax, esi
mov ecx, ebx
jmp 0x52105c
mov eax, ecx
mov ecx, edx
call fcn.00462490
mov eax, edx
mov ecx, ebx
call fcn.00462490
mov eax, esi
call fcn.00462490
xor eax, eax
mov ecx, eax
call fcn.00462480
mov eax, edi
call fcn.00462490
call fcn.00462490
call fcn.00462490
call fcn.00462490
mov ebx, dword [esp + 0x1c8]
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x1c4]
mov eax, dword [esp + 0x84]
mov edi, esi
mov dword [esp + 0x5c], edx
mov esi, dword [esp + 0x1c4]
mov edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x88]
cmp eax, ebp
jge 0x521231
xchg edi, eax
mov byte [esp + 0x3a], al
xchg edi, eax
mov edi, dword [ebx + 0x1c]
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0xa8], ebp
lea ebp, [eax + 1]
cmp edi, ebp
jb 0x5212c2
cmp eax, ebp
ja 0x5212bb
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0x68], edx
movzx ecx, word [ebx + 2]
mov dword [esp], esi
sub edi, eax
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
sar edi, 0x1f
and eax, edi
mov edi, dword [esp + 0xa8]
add eax, edi
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], edx
mov word [esp + 0x10], cx
call fcn.00521930
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov ebp, dword [esp + 0x40]
test ebp, ebp
jne 0x5211e0
mov ebp, eax
mov esi, ebx
jmp 0x52110d
mov ebp, dword [esp + 0x74]
test ebp, ebp
je 0x5211ec
test eax, eax
jne 0x5211f9
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor esi, esi
jmp 0x52110d
mov byte [esp + 0x3b], bl
mov esi, dword [esp + 0x1c4]
mov edi, dword [esi]
mov dword [esp + 0xa4], edi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x8c]
jmp 0x521275
movzx esi, byte [esp + 0x3a]
and esi, ebx
jmp 0x52110d
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1d4], eax
xchg edi, eax
mov byte [esp + 0x1d8], al
xchg edi, eax
add esp, 0x1c0
ret
mov edi, dword [esp + 0xa4]
movzx ebx, byte [esp + 0x3b]
mov esi, dword [esp + 0x1c4]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x54]
test esi, esi
je 0x521225
mov ebp, dword [edi]
mov ebx, dword [edi + 4]
shr esi, 1
cmp ebx, esi
jbe 0x5212b2
lea ebx, [esi + esi*2]
lea esi, [ebp + ebx*8]
mov edi, dword [esp + 0x54]
test edi, 1
jne 0x5212a5
lea ebx, [ebp + ebx*8 + 4]
mov ebp, dword [ebx]
mov dword [ebx], eax
jmp 0x52125a
mov esi, dword [esi + 8]
lea ebx, [ebp + ebx*8 + 8]
mov dword [ebx], eax
mov ebp, esi
jmp 0x52125a
mov eax, esi
mov ecx, ebx
call fcn.00462490
mov ecx, ebp
call fcn.004624e0
mov ecx, ebp
mov edx, edi
call fcn.004624c0
nop
call fcn.00460ff0
jmp fcn.0051fb60