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

Disassembly:
mov ecx, dword [0x7c3e14]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x52c09b
sub esp, 0xd8
mov eax, dword [esp + 0x13c]
test eax, eax
je 0x52b4bd
mov ecx, dword [eax]
jmp 0x52b4bf
xor ecx, ecx
mov dword [esp + 0x4c], ecx
lea eax, [0x5dda40]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
call fcn.0044d9f0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xa4], eax
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.00468604
lea eax, [0x5df6e0]
mov dword [esp], eax
mov ecx, dword [esp + 0x13c]
mov dword [esp + 4], ecx
lea edx, [esp + 0xa8]
mov dword [esp + 8], edx
call fcn.0040e030
jmp 0x52b541
lea eax, [esp + 0xa8]
mov dword [esp], eax
call fcn.0040e270
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x52b73f
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax]
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x108]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x4c], ebx
xor ebp, ebp
jmp 0x52c04f
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
jl 0x52b532
lea edx, [0x792be8]
cmp dword [edx + 4], ecx
jne 0x52b5cd
mov edx, dword [0x792be8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00403320
movzx eax, byte [esp + 0xc]
test al, al
jne 0x52b532
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
lea edx, [0x792be8]
lea ebx, [0x792be0]
cmp dword [ebx + 4], ecx
jne 0x52b60f
mov edx, dword [0x792be0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00403320
movzx eax, byte [esp + 0xc]
test al, al
jne 0x52b532
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
lea edx, [0x792be8]
lea ebx, [0x792be0]
lea ebp, [0x792c28]
cmp dword [ebp + 4], ecx
jne 0x52b657
mov edx, dword [0x792c28]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00403320
movzx eax, byte [esp + 0xc]
test al, al
jne 0x52b532
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
lea edx, [0x792be8]
lea ebx, [0x792be0]
lea ebp, [0x792c28]
lea esi, [0x792c38]
cmp dword [esi + 4], ecx
jne 0x52b6a5
mov edx, dword [0x792c38]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00403320
movzx eax, byte [esp + 0xc]
test al, al
jne 0x52b532
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
lea edx, [0x792be8]
lea ebx, [0x792be0]
lea ebp, [0x792c28]
lea esi, [0x792c38]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xa0]
inc esi
mov ebp, dword [esp + 0x9c]
cmp edi, esi
jae 0x52b70f
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x5dda40]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x9c], ebp
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
lea edx, [0x792be8]
lea ebx, [0x792be0]
mov dword [esp + 0xa0], esi
lea edi, [ebp + esi*8 - 4]
mov dword [edi], ecx
mov ecx, dword [0x7c3fa0]
lea ebp, [ebp + esi*8 - 8]
test ecx, ecx
je 0x52b737
call fcn.00468410
mov dword [edi], eax
mov ecx, dword [ebp]
mov dword [edi + 4], ecx
mov dword [ebp], eax
jmp 0x52b532
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409ce0
mov eax, dword [esp + 0xc]
lea ecx, [0x65a0f0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004942f0
mov eax, dword [esp + 0x140]
mov ecx, dword [eax + 4]
sub ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x52b7a3
mov ecx, dword [esp + 0xa0]
test ecx, ecx
je 0x52b7a3
mov dword [esp], eax
mov byte [esp + 4], 0x20
call fcn.004d2600
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
lea ecx, [0x52c360]
mov dword [esp + 0x94], ecx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x98], ecx
mov dword [esp], eax
lea eax, [esp + 0x94]
mov dword [esp + 4], eax
call fcn.00494120
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xa0]
cmp ecx, eax
jle 0x52b845
jbe 0x52c049
mov edx, dword [esp + 0x9c]
lea edx, [edx + eax*8]
mov ebx, dword [edx + 4]
cmp dword [0x792c34], ebx
je 0x52b81c
xor ecx, ecx
jmp 0x52b847
mov dword [esp + 0x44], eax
mov eax, dword [edx]
mov ecx, dword [0x792c30]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00403320
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x44]
jmp 0x52b847
xor ecx, ecx
test cl, cl
je 0x52b9c5
mov ecx, dword [esp + 0xa0]
cmp ecx, eax
jbe 0x52c044
mov ecx, dword [esp + 0x9c]
lea edx, [ecx + eax*8 + 4]
mov dword [edx], 0
mov edx, dword [0x7c3fa0]
lea eax, [ecx + eax*8]
test edx, edx
je 0x52b885
mov ecx, dword [eax]
call fcn.00468400
mov dword [edi], ecx
mov dword [eax], 0
lea eax, [0x5da7a0]
mov dword [esp], eax
call fcn.0040c420
mov eax, dword [esp + 4]
mov ecx, dword [0x792c34]
mov edx, dword [0x792c30]
mov dword [eax + 4], ecx
mov ecx, dword [0x7c3fa0]
test ecx, ecx
je 0x52b8bd
call fcn.00468400
mov dword [edi], edx
mov dword [eax], edx
mov ecx, dword [esp + 0xa0]
lea edx, [ecx + 1]
cmp edx, 1
ja 0x52b8d5
mov ebx, 1
jmp 0x52b90d
mov dword [esp + 0x4c], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 1
mov dword [esp + 0xc], ecx
lea eax, [0x5dda40]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x88], eax
mov ebp, dword [esp + 0xa0]
sub ecx, ebp
sub ebx, ecx
sub edx, ecx
mov esi, dword [esp + 0x9c]
lea edi, [0x5dda40]
mov dword [esp], edi
dec edx
dec ebx
neg ebx
inc ecx
shl ecx, 3
sar ebx, 0x1f
and ecx, ebx
add ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.00411700
mov eax, dword [esp + 0x88]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xa4], ecx
lea ecx, [0x5dda40]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.0044d9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x28]
xor ebp, ebp
xor esi, esi
jmp 0x52bf94
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x4c], ecx
xor edx, edx
jmp 0x52b9f0
lea edx, [ecx + 1]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
cmp edx, ecx
jge 0x52bdee
mov dword [esp + 0x30], edx
lea ebx, [eax + edx*8]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x34], ebp
mov ebx, dword [ebx]
mov dword [esp + 0x70], ebx
lea esi, [0x792c30]
cmp dword [esi + 4], ebp
jne 0x52bac9
mov eax, dword [0x792c30]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.00403320
movzx eax, byte [esp + 0xc]
test al, al
je 0x52baac
mov eax, dword [esp + 0x12c]
test eax, eax
jne 0x52ba6c
movzx ecx, byte [esp + 0xe4]
mov dword [esp + 0x60], 0
mov byte [esp + 0x64], 0
lea edx, [0x52c290]
mov dword [esp + 0x60], edx
mov byte [esp + 0x64], cl
lea eax, [esp + 0x60]
mov ecx, dword [esp + 0x130]
test ecx, ecx
jne 0x52ba9e
movzx edx, byte [esp + 0xe4]
mov dword [esp + 0x58], 0
mov byte [esp + 0x5c], 0
lea ebx, [0x52c180]
mov dword [esp + 0x58], ebx
mov byte [esp + 0x5c], dl
lea ecx, [esp + 0x58]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x34]
mov edi, eax
mov esi, ecx
jmp 0x52bb14
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x34]
lea esi, [0x792c30]
mov edi, dword [esp + 0x124]
test edi, edi
jne 0x52bb03
movzx edi, byte [esp + 0xe4]
mov dword [esp + 0x50], 0
mov byte [esp + 0x54], 0
lea esi, [0x52c0b0]
mov dword [esp + 0x50], esi
xchg edi, eax
mov byte [esp + 0x54], al
xchg edi, eax
lea esi, [0x792c30]
lea edi, [esp + 0x50]
mov esi, dword [esp + 0x128]
test esi, esi
jne 0x52bb14
lea esi, [0x621750]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], esi
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00409c60
mov edx, dword [esp + 0x6c]
mov eax, dword [edx]
mov ecx, dword [esp + 8]
lea ebx, [0x5dda40]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x140]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004d2100
lea eax, [0x5df6e0]
mov dword [esp], eax
mov ecx, dword [esp + 0x13c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
call fcn.004104e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
test ecx, ecx
je 0x52bc31
mov ebx, dword [ecx + 8]
cmp ebx, 0x778cdb8
jne 0x52bbcb
lea ebx, [0x5dda40]
cmp ecx, ebx
jne 0x52bbc3
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [eax]
mov dword [esp + 0x7c], edx
xor eax, eax
jmp 0x52bdf7
lea ebx, [0x5ebe00]
jmp 0x52bc31
cmp ebx, 0x42d28209
jne 0x52bc2b
lea ebx, [0x5ebe00]
cmp ecx, ebx
jne 0x52bc31
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409c60
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
mov ecx, dword [esp + 8]
lea ebx, [0x5ebe00]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x140]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004d2100
jmp 0x52bdbd
lea ebx, [0x5ebe00]
mov edx, dword [0x792834]
mov ebx, dword [edx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x52bd12
mov dword [esp + 0x80], ecx
movzx eax, byte [esp + 0xe4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], ecx
lea edx, [0x5dda40]
mov dword [esp], edx
lea ebx, [0x6596c8]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x1f
mov byte [esp + 0xc], al
call fcn.0052d110
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov edx, dword [esp + 0x84]
test edx, edx
je 0x52bcbc
mov edx, dword [edx + 4]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x90], edx
lea edx, [0x659a04]
mov dword [esp], edx
mov ebx, dword [esp + 0x140]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [esp + 0x8c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.004c7990
jmp 0x52bdbd
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409ce0
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
mov ecx, dword [esp + 0xc]
lea ebx, [0x5d72e0]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409c60
mov eax, dword [esp + 8]
lea ecx, [0x5dda40]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
lea eax, [0x659a04]
mov dword [esp], eax
mov edx, dword [esp + 0x140]
mov dword [esp + 4], edx
lea ebx, [esp + 0x8c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c7b10
mov eax, dword [esp + 0xa0]
dec eax
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jge 0x52b9e2
mov eax, dword [esp + 0x140]
mov dword [esp], eax
mov byte [esp + 4], 0x20
call fcn.004d2600
mov ecx, dword [esp + 0x30]
jmp 0x52b9e2
add esp, 0xd8
ret
mov eax, ebp
cmp eax, ecx
jge 0x52bf3e
movzx ebp, byte [edx + eax]
cmp ebp, 0x80
jge 0x52be12
lea ebp, [eax + 1]
cmp eax, ecx
jmp 0x52be3e
mov dword [esp + 0x2c], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0045f560
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
mov edx, dword [esp + 0x7c]
lea ebx, [0x5dda40]
jae 0x52bf87
movzx esi, byte [edx + eax]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
jb 0x52be6b
xchg esi, eax
cmp al, 0x7e
xchg esi, eax
ja 0x52be6b
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x52be6b
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
je 0x52be6b
xchg esi, eax
cmp al, 0x22
xchg esi, eax
jne 0x52bdf5
lea eax, [ecx + ecx*2]
mov edx, eax
shr eax, 0x1f
add eax, edx
sar eax, 1
mov dword [esp + 0x48], eax
nop
lea edx, [0x5ddd80]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.0044d9f0
mov eax, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov byte [esp + 0x14], 0x22
mov byte [esp + 0x15], 0
mov byte [esp + 0x16], 0
call fcn.0047e150
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004517c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409c60
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
mov ecx, dword [esp + 8]
lea ebx, [0x5dda40]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x140]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004d2100
jmp 0x52bdbd
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00409c60
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
mov ecx, dword [esp + 8]
lea ebx, [0x5dda40]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x140]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004d2100
jmp 0x52bdbd
call fcn.00468460
inc ebp
mov ecx, dword [esp + 0x88]
cmp ebp, edx
jge 0x52c02a
lea edi, [ecx + ebp*8]
mov ecx, dword [edi + 4]
mov edi, dword [edi]
test ecx, ecx
je 0x52bf8c
mov dword [esp + 0x48], ebp
inc esi
cmp ebx, esi
jae 0x52bff7
mov dword [esp + 0x74], edi
mov dword [esp + 0x38], ecx
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5dda40]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x74]
lea edx, [eax + esi*8 - 4]
mov dword [edx], ecx
mov ecx, dword [0x7c3fa0]
lea edx, [eax + esi*8 - 8]
test ecx, ecx
je 0x52c01f
mov ecx, edi
call fcn.00468410
mov dword [edi], ecx
mov ebp, dword [edx]
mov dword [edi + 4], ebp
mov ebp, dword [esp + 0x48]
mov edi, ecx
mov dword [edx], edi
mov edx, dword [esp + 0x4c]
jmp 0x52bf8c
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], ebx
jmp 0x52b9c5
call fcn.00468460
call fcn.00468460
inc ebp
cmp ebp, ebx
jge 0x52b58f
lea esi, [edx + ebp*8]
cmp dword [esi + 4], ecx
jne 0x52c04e
mov dword [esp + 0x48], ebp
mov edx, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00403320
movzx eax, byte [esp + 0xc]
test al, al
jne 0x52b57d
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
jmp 0x52c04e
call fcn.00467000
jmp fcn.0052b490