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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x520d94
sub esp, 0x5c
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x64]
mov ebx, dword [edx + 4]
test ecx, 1
jne 0x520d7a
test ebx, 1
jne 0x520d7a
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
lea eax, [0x5cd160]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00434f20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
lea eax, [0x5cda20]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00434f20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x23], 1
lea eax, [esp + 0x23]
mov dword [esp + 8], eax
lea eax, [esp + 0x50]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x10], eax
mov dword [esp], 0xc
lea eax, [0x609d60]
mov dword [esp + 4], eax
call fcn.004245e0
test eax, eax
jne 0x520d31
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x520ce1
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
cmp edx, ebx
jl 0x520901
mov edx, dword [esp + 0x2c]
test edx, edx
jle 0x5208f8
mov ebp, dword [esp + 0x60]
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
cmp eax, edi
jae 0x520d6c
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov esi, dword [esi + eax*4]
cmp edx, edi
jae 0x520d6c
mov edx, dword [ebx + edx*4]
cmp esi, edx
jg 0x5207ef
xor eax, eax
mov byte [esp + 0x23], al
movzx eax, byte [esp + 0x23]
test al, al
jne 0x52073c
mov eax, dword [0x7896c8]
mov ecx, dword [0x7896c4]
mov edx, dword [0x7896c0]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov eax, dword [0x7896b8]
mov ecx, dword [0x7896b4]
mov edx, dword [0x7896b0]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
nop
call fcn.00424e00
add esp, 0x5c
ret
mov edx, dword [ebp + 4]
mov ebx, dword [ebp]
cmp eax, edx
jae 0x520d65
mov esi, dword [ebx + eax*4]
lea edi, [eax + 1]
cmp edi, edx
jae 0x520d65
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
lea ecx, [edi + 2]
mov eax, dword [ebx + eax*4 + 4]
cmp ecx, ebp
jg 0x5208b1
lea ecx, [edi + 2]
mov dword [esp + 0x54], ecx
mov dword [edx + edi*4], esi
mov dword [edx + edi*4 + 4], eax
mov eax, dword [esp + 0x28]
add eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
lea ebx, [eax + 1]
cmp ebx, ecx
jg 0x52087d
lea ebx, [eax + 1]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x68]
mov dword [edx + eax*4], ebx
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x60]
mov eax, 1
jmp 0x520796
lea ebp, [0x5cda20]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004350a0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], edx
jmp 0x52085d
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], eax
lea eax, [0x5cd160]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.004350a0
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
jmp 0x520826
mov ebp, dword [esp + 0x60]
jmp 0x5207ef
cmp eax, ecx
jl 0x520a63
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x520a5a
mov ebp, dword [esp + 0x64]
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
cmp edx, edi
jae 0x520d5e
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov esi, dword [esi + edx*4]
cmp eax, edi
jae 0x520d5e
mov eax, dword [ebx + eax*4]
cmp esi, eax
jg 0x520950
xor eax, eax
mov byte [esp + 0x23], al
mov ebp, dword [esp + 0x60]
jmp 0x52079a
mov eax, dword [ebp]
mov ebx, dword [ebp + 4]
cmp edx, ebx
jae 0x520d57
mov esi, dword [eax + edx*4]
lea edi, [edx + 1]
cmp edi, ebx
jae 0x520d57
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
lea ecx, [edi + 2]
mov eax, dword [eax + edx*4 + 4]
cmp ecx, ebx
jg 0x520a13
lea ecx, [edi + 2]
mov dword [esp + 0x54], ecx
mov dword [ebp + edi*4], esi
mov dword [ebp + edi*4 + 4], eax
mov eax, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
lea ebx, [edx + 1]
cmp ebx, eax
jg 0x5209df
lea ebx, [edx + 1]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x6c]
mov dword [ecx + edx*4], ebx
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x64]
mov eax, 1
jmp 0x520943
lea ebp, [0x5cda20]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call fcn.004350a0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ecx
jmp 0x5209bf
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], eax
lea eax, [0x5cd160]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.004350a0
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], ebp
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
jmp 0x520987
mov ebp, dword [esp + 0x64]
jmp 0x520950
mov ebp, dword [esp + 0x64]
mov esi, dword [ebp + 4]
mov edi, dword [ebp]
cmp edx, esi
jae 0x520d73
mov ebp, dword [edi + edx*4]
mov ebx, dword [esp + 0x60]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx]
cmp eax, ecx
jae 0x520d73
mov dword [esp + 0x40], ebx
mov ebx, dword [ebx + eax*4]
cmp ebp, ebx
jge 0x520bba
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x520aca
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
cmp eax, ebx
jae 0x520d50
mov eax, dword [ecx + eax*4]
cmp ebp, eax
jg 0x520aca
xor eax, eax
mov byte [esp + 0x23], al
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x60]
jmp 0x52079a
lea eax, [edx + 1]
cmp eax, esi
jae 0x520d49
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
lea esi, [ecx + 2]
mov edx, dword [edi + edx*4 + 4]
cmp esi, eax
jg 0x520b73
lea eax, [ecx + 2]
mov dword [esp + 0x54], eax
mov dword [ebx + ecx*4], ebp
mov dword [ebx + ecx*4 + 4], edx
mov eax, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
lea ebx, [ecx + 1]
cmp ebx, eax
jg 0x520b3f
lea ebx, [ecx + 1]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x6c]
mov dword [edx + ecx*4], ebx
mov eax, 1
jmp 0x520ab9
lea ebp, [0x5cda20]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
call fcn.004350a0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], edx
jmp 0x520b27
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], edx
lea edx, [0x5cd160]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
call fcn.004350a0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], ebx
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
jmp 0x520af0
mov edx, dword [esp + 0x2c]
test edx, edx
jle 0x520bec
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
cmp edx, ebp
jae 0x520d42
mov edx, dword [esi + edx*4]
cmp ebx, edx
jg 0x520bec
xor eax, eax
mov byte [esp + 0x23], al
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x60]
jmp 0x52079a
lea edx, [eax + 1]
cmp edx, ecx
jae 0x520d3b
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
lea esi, [edx + 2]
mov edi, dword [esp + 0x40]
mov eax, dword [edi + eax*4 + 4]
cmp esi, ecx
jg 0x520c9a
lea ecx, [edx + 2]
mov dword [esp + 0x54], ecx
mov dword [ebp + edx*4], ebx
mov dword [ebp + edx*4 + 4], eax
mov eax, dword [esp + 0x28]
add eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
lea ebx, [edx + 1]
cmp ebx, ecx
jg 0x520c66
lea ecx, [edx + 1]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + edx*4], ecx
mov eax, 1
jmp 0x520bdb
lea ebp, [0x5cda20]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004350a0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], eax
jmp 0x520c4e
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], eax
lea eax, [0x5cd160]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
call fcn.004350a0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], ebp
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp 0x520c16
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
cmp edx, ebx
jl 0x52074c
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
nop
call fcn.00424e00
add esp, 0x5c
ret
nop
call fcn.00424e00
add esp, 0x5c
ret
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
call fcn.00424360
ud2
lea eax, [0x5cd8e0]
mov dword [esp], eax
lea eax, [0x6990d8]
mov dword [esp + 4], eax
call fcn.004251b0
ud2
call fcn.00446b60
jmp fcn.00520600