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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x522fe9
sub esp, 0x6c
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x98]
mov ebx, edx
sub edx, ecx
lea eax, [ecx - 1]
cmp eax, ecx
jae 0x522fe3
mov ebp, dword [esp + 0x94]
mov esi, dword [ebp + ecx*4 - 4]
nop
nop
cmp esi, 0x10000
jb 0x522fb4
shr esi, 0x10
mov eax, 0x10
cmp esi, 0x100
jb 0x522fad
shr esi, 8
lea edi, [eax + 8]
cmp esi, 0x100
jae 0x522fd7
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], edi
lea eax, [0x1083960]
movzx eax, byte [eax + esi]
mov dword [esp + 0x54], eax
mov dword [esp], ecx
call fcn.00522a40
mov eax, dword [esp + 4]
mov dword [esp + 0x60], eax
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov ebx, dword [eax + 8]
mov dword [esp + 0x40], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x94]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x54]
lea esi, [edi + esi - 0x20]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x18], esi
call fcn.0052c480
mov ecx, dword [esp + 0x8c]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x84]
cmp eax, edx
jg 0x522f38
ja 0x522fd0
mov ebx, dword [esp + 0x7c]
cmp edx, ecx
jb 0x522fcb
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x5c], ebx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
call fcn.0052c480
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x8c]
cmp ecx, edx
jbe 0x522fc4
mov ebx, dword [esp + 0x5c]
mov dword [ebx + edx*4], eax
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x522f2b
mov ebp, dword [esp + 0x70]
lea esi, [ebp + eax*4 - 4]
mov edi, dword [esp + 0x38]
mov edx, edi
lea edi, [ebx + edi*4 - 4]
cmp esi, edi
jne 0x522d27
xor eax, eax
xor ebp, ebp
mov esi, dword [esp + 0x48]
lea edi, [esi + 1]
cmp eax, edi
jl 0x522eac
jb 0x522fbb
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], ebp
mov dword [esp + 0x28], edi
mov esi, dword [esp + 0x98]
cmp esi, 0x64
jge 0x522e73
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x64]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x20], esi
call fcn.00523000
nop
lea eax, [0x10e5300]
mov dword [esp], eax
lea eax, [0xb869c0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
call fcn.0046b510
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
call fcn.0051f140
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x5c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x34]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x38]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x18], edi
call fcn.0052c4d0
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
call fcn.0051f140
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], edx
add esp, 0x6c
ret
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x64]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x20], esi
call fcn.00523520
jmp 0x522d8c
test esi, esi
jne 0x522eed
lea eax, [0xaa8ee0]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00446f30
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x5c]
mov eax, 1
mov edi, 1
jmp 0x522d3c
mov dword [esp + 0x28], edi
lea eax, [0xaa8ee0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esi + 5]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], eax
call fcn.00446f30
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
jmp 0x522d3c
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x70]
jmp 0x522d27
test ecx, ecx
jne 0x522f74
lea eax, [0xaa8ee0]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00446f30
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
mov edx, 1
mov eax, 1
jmp 0x522c9d
mov dword [esp + 0x24], eax
lea edx, [0xaa8ee0]
mov dword [esp], edx
mov dword [esp + 4], eax
lea ebx, [ecx + 5]
mov dword [esp + 0x30], ebx
mov dword [esp + 8], ebx
call fcn.00446f30
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
jmp 0x522c9d
mov edi, eax
jmp 0x522be9
xor eax, eax
jmp 0x522bd7
mov ecx, edi
mov edx, eax
call fcn.00460c00
mov eax, edx
call fcn.00460bc0
call fcn.00460c00
mov ecx, eax
call fcn.00460c00
mov eax, esi
mov ecx, 0x100
call fcn.00460bd0
call fcn.00460bc0
nop
call fcn.0045f5f0
jmp fcn.00522b80