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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx]
ja 0x52b973
xor edi, edi
mov eax, 0x14
call fcn.0044c660
jmp fcn.0052b950
sub esp, 0xd4
mov ebx, dword [esp + 0xd8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
cmp edx, 0
jne 0x52b9d1
cmp ecx, 0
jne 0x52b9d1
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0xc], 0
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0x10], 0
mov ebx, dword [esp + 0xd8]
movzx ebp, byte [ebx + 0xc]
mov ebx, dword [esp + 0xdc]
xchg ebp, eax
mov byte [ebx + 0x14], al
xchg ebp, eax
mov byte [esp + 0xe8], 1
add esp, 0xd4
ret
mov ebx, dword [esp + 0xd8]
mov ebp, dword [ebx + 8]
cmp ebp, 0
jne 0x52bcc9
mov esi, dword [esp + 0xe0]
cmp esi, 0
je 0x52c411
mov ecx, dword [esp + 0xd8]
cmp ecx, 0
je 0x52c40a
mov eax, dword [esi]
mov edi, dword [esi + 4]
mov dword [esp + 0xa4], eax
mov ebp, dword [ecx]
mov edx, dword [ecx + 4]
cmp edi, edx
jne 0x52bcc9
mov ebx, dword [esp + 0xa4]
cmp ebx, ebp
jne 0x52bcc9
mov edx, dword [esi + 8]
mov ebp, dword [ecx + 8]
cmp edx, ebp
jne 0x52bcc9
movzx ebp, byte [esi + 0xc]
mov edx, ebp
movzx ebp, byte [ecx + 0xc]
xchg ebp, eax
cmp dl, al
xchg ebp, eax
jne 0x52bcc9
mov ecx, dword [esp + 0xe0]
cmp ecx, 0
je 0x52c403
mov esi, dword [esp + 0xe4]
cmp esi, 0
je 0x52c3fc
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [esp + 0xa4], eax
mov ebp, dword [esi]
mov edx, dword [esi + 4]
cmp edi, edx
jne 0x52bcc9
mov ebx, dword [esp + 0xa4]
cmp ebx, ebp
jne 0x52bcc9
mov eax, dword [ecx + 8]
mov ebp, dword [esi + 8]
cmp eax, ebp
jne 0x52bcc9
movzx ebp, byte [ecx + 0xc]
mov ecx, ebp
movzx ebp, byte [esi + 0xc]
xchg ebp, eax
cmp cl, al
xchg ebp, eax
jne 0x52bcc9
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.0044e09a
mov dword [esp + 0x38], 0x17
mov ebx, dword [esp + 0xd8]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov ebx, eax
cmp ecx, 0
jb 0x52bb8d
jbe 0x52bcbb
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
call fcn.0043e790
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov eax, 0xa
xor ebp, ebp
mov edx, ebp
or ebp, esi
jne 0x52bca6
mul edi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
sub eax, ebx
sbb edx, ecx
add eax, 0x30
adc edx, 0
mov ebx, dword [esp + 0x38]
lea ebp, [esp + 0xb4]
cmp ebx, 0x18
jae 0x52bc9f
lea ebp, [ebp + ebx]
mov byte [ebp], al
mov ebx, dword [esp + 0x38]
dec ebx
mov dword [esp + 0x38], ebx
mov ebx, edi
mov ecx, esi
cmp ecx, 0
jae 0x52bae5
mov edi, 0x18
sub edi, dword [esp + 0x38]
dec edi
xor eax, eax
cmp eax, edi
jge 0x52bbda
mov ebx, dword [esp + 0x38]
inc ebx
add ebx, eax
lea ebp, [esp + 0xb4]
cmp ebx, 0x18
jae 0x52bc98
lea ebp, [ebp + ebx]
movzx ebp, byte [ebp]
mov ebx, dword [esp + 0xdc]
cmp eax, dword [ebx + 4]
jae 0x52bc91
mov esi, dword [ebx]
lea esi, [esi + eax]
xchg ebp, eax
mov byte [esi], al
xchg ebp, eax
inc eax
cmp eax, edi
jl 0x52bb9d
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0xc], edi
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0x10], edi
mov ebx, dword [esp + 0xdc]
mov ebp, dword [ebx + 0xc]
cmp ebp, 0
jle 0x52bc47
mov ebx, dword [esp + 0xdc]
mov eax, dword [ebx + 0xc]
dec eax
mov ebx, dword [esp + 0xdc]
cmp eax, dword [ebx + 4]
jae 0x52bc8a
mov esi, dword [ebx]
lea esi, [esi + eax]
movzx ebp, byte [esi]
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jne 0x52bc47
mov ebx, dword [esp + 0xdc]
mov eax, dword [ebx + 0xc]
dec eax
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0xc], eax
mov ebx, dword [esp + 0xdc]
mov ebp, dword [ebx + 0xc]
cmp ebp, 0
jg 0x52bbfd
mov ebx, dword [esp + 0xdc]
mov ebp, dword [ebx + 0xc]
cmp ebp, 0
jne 0x52bc64
mov ebx, dword [esp + 0xdc]
mov dword [ebx + 0x10], 0
mov ebx, dword [esp + 0xd8]
movzx ebp, byte [ebx + 0xc]
mov ebx, dword [esp + 0xdc]
xchg ebp, eax
mov byte [ebx + 0x14], al
xchg ebp, eax
mov byte [esp + 0xe8], 1
add esp, 0xd4
ret
call fcn.004335c0
ud2
call fcn.004335c0
ud2
call fcn.004335c0
ud2
call fcn.004335c0
ud2
imul edx, edi
mov ebp, eax
imul ebp, esi
add ebp, edx
mov edx, edi
mul edx
add edx, ebp
jmp 0x52bb40
cmp ebx, 0
jbe 0x52bb8d
jmp 0x52baeb
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
call fcn.0052a860
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
mov ebx, dword [esp + 0xd8]
mov ecx, dword [ebx + 8]
mov ebp, dword [esi + 8]
cmp ecx, ebp
jle 0x52bd50
mov ebx, dword [esp + 0xd8]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0xd8]
mov ecx, dword [ebx + 8]
mov ebx, dword [esi + 8]
sub ecx, ebx
mov eax, dword [esp + 0x9c]
cmp ecx, 0x40
jae 0x52c3f3
cmp ecx, 0x20
jae 0x52c3e8
shld edx, eax, cl
shl eax, cl
mov ebx, dword [esp + 0xd8]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov ebp, dword [esi + 8]
mov ebx, dword [esp + 0xd8]
mov dword [ebx + 8], ebp
mov eax, dword [edi + 8]
mov ebp, dword [esi + 8]
cmp eax, ebp
jle 0x52bd97
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x9c], eax
mov ecx, dword [edi + 8]
mov ebx, dword [esi + 8]
sub ecx, ebx
mov eax, dword [esp + 0x9c]
cmp ecx, 0x40
jae 0x52c3df
cmp ecx, 0x20
jae 0x52c3d4
shld edx, eax, cl
shl eax, cl
mov dword [edi], eax
mov dword [edi + 4], edx
mov ebp, dword [esi + 8]
mov dword [edi + 8], ebp
mov dword [esp], edi
mov ebx, dword [esp + 0xd8]
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.0052af80
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x50], ebx
mov eax, dword [esi]
mov edx, dword [esi + 4]
add eax, 1
adc edx, 0
mov dword [esi], eax
mov dword [esi + 4], edx
mov ebx, dword [esp + 0xe0]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
sub eax, 1
sbb edx, 0
mov ebx, dword [esp + 0xe0]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [esi + 8]
neg eax
mov dword [esp + 0x34], eax
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x34]
cmp ecx, 0x40
jae 0x52c3cb
cmp ecx, 0x20
jae 0x52c3c0
shrd eax, edx, cl
shr edx, cl
mov dword [esp + 0x40], eax
mov eax, dword [esi]
mov ebp, dword [esi + 4]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [esp + 0x34]
cmp ecx, 0x40
jae 0x52c3b7
cmp ecx, 0x20
jae 0x52c3ac
shld edx, eax, cl
shl eax, cl
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0xa4]
mov edx, ebp
sub eax, ebx
sbb edx, ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov ebp, dword [esi]
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0xe0]
mov eax, dword [ebx]
mov ebx, dword [ebx + 4]
mov dword [esp + 0xa4], eax
mov eax, ebp
sub eax, dword [esp + 0xa4]
sbb edx, ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov esi, eax
mov ebx, dword [esp + 0xd8]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov ebx, eax
mov eax, esi
sub eax, ebx
sbb edx, ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x3c], 0
xor esi, esi
mov ebp, 1
xor ecx, ecx
cmp esi, 0x14
jge 0x52beff
mov eax, dword [esp + 0x40]
xor ebx, ebx
mov dword [esp + 0xa4], eax
cmp ebx, ecx
ja 0x52c37d
jb 0x52befb
mov ebx, dword [esp + 0xa4]
cmp ebx, ebp
jae 0x52c37d
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], 0
mov ebx, dword [esp + 0x3c]
cmp dword [esp + 0x48], ebx
jge 0x52c088
mov ebx, dword [esp + 0x3c]
sub ebx, dword [esp + 0x48]
dec ebx
lea ebp, [0xc81220]
cmp ebx, 0x14
jae 0x52c376
lea ebp, [ebp + ebx*8]
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebp
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
xor edx, edx
div ebx
mov edx, eax
add edx, 0x30
mov ebp, dword [esp + 0x48]
cmp ebp, dword [edi + 4]
jae 0x52c36f
mov esi, dword [edi]
lea esi, [esi + ebp]
mov byte [esi], dl
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x74]
imul ebx, eax
sub ebp, ebx
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x40]
xor edx, edx
mov ecx, dword [esp + 0x34]
cmp ecx, 0x40
jae 0x52c366
cmp ecx, 0x20
jae 0x52c35b
shld edx, eax, cl
shl eax, cl
add eax, dword [esp + 0x8c]
adc edx, dword [esp + 0x90]
mov esi, eax
mov ecx, edx
cmp edx, dword [esp + 0xb0]
ja 0x52c071
jb 0x52bfc4
cmp esi, dword [esp + 0xac]
jae 0x52c071
mov eax, dword [esp + 0x48]
inc eax
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x50]
mov dword [edi + 0x10], eax
mov ebx, dword [esp + 0xd8]
movzx ebp, byte [ebx + 0xc]
xchg ebp, eax
mov byte [edi + 0x14], al
xchg ebp, eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x34]
cmp ecx, 0x40
jae 0x52c06b
cmp ecx, 0x20
jae 0x52c063
shld edx, eax, cl
shl eax, cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0
call fcn.0052c420
movzx ebx, byte [esp + 0x2c]
mov byte [esp + 0xe8], bl
add esp, 0xd4
ret
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x52c033
xor edx, edx
xor eax, eax
jmp 0x52c029
mov ebx, dword [esp + 0x48]
inc ebx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x3c]
cmp dword [esp + 0x48], ebx
jl 0x52bf15
mov ebp, dword [esp + 0x3c]
mov dword [edi + 0xc], ebp
mov eax, dword [edi + 0xc]
add eax, dword [esp + 0x50]
mov dword [edi + 0x10], eax
mov ebx, dword [esp + 0xd8]
movzx ebp, byte [ebx + 0xc]
xchg ebp, eax
mov byte [edi + 0x14], al
xchg ebp, eax
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x90]
mov ecx, 0xa
xor ebx, ebx
mov edx, ebp
or ebp, ebx
jne 0x52c346
mul ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
mov ecx, 0xa
xor ebx, ebx
mov edx, ebp
or ebp, ebx
jne 0x52c331
mul ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x34]
cmp ecx, 0x40
jae 0x52c328
cmp ecx, 0x20
jae 0x52c31d
shrd eax, edx, cl
shr edx, cl
mov ecx, eax
mov edx, eax
add edx, 0x30
mov ebp, dword [edi + 0xc]
cmp ebp, dword [edi + 4]
jae 0x52c316
mov esi, dword [edi]
lea esi, [esi + ebp]
mov byte [esi], dl
mov eax, dword [edi + 0xc]
inc eax
mov dword [edi + 0xc], eax
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
mov edx, ebx
mov eax, ecx
cdq
mov ecx, dword [esp + 0x34]
cmp ecx, 0x40
jae 0x52c30d
cmp ecx, 0x20
jae 0x52c302
shld edx, eax, cl
shl eax, cl
mov esi, eax
mov ecx, edx
mov eax, ebp
mov edx, ebx
sub eax, esi
sbb edx, ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov edx, ebp
or ebp, ebx
jne 0x52c2ed
mul ecx
cmp edx, dword [esp + 0x90]
jb 0x52c0bf
ja 0x52c1f3
cmp eax, dword [esp + 0x8c]
jbe 0x52c0bf
mov dword [esp], edi
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov edx, ebp
or ebp, ebx
jne 0x52c2d8
mul ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov edx, ebp
or ebp, ebx
jne 0x52c2c6
mul ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov eax, 1
xor edx, edx
mov ecx, dword [esp + 0x34]
cmp ecx, 0x40
jae 0x52c2c0
cmp ecx, 0x20
jae 0x52c2b8
shld edx, eax, cl
shl eax, cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
shld edx, eax, 1
shl eax, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
call fcn.0052c420
movzx ebx, byte [esp + 0x2c]
mov byte [esp + 0xe8], bl
add esp, 0xd4
ret
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x52c27c
xor edx, edx
xor eax, eax
jmp 0x52c272
imul edx, ecx
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, ecx
mul edx
add edx, ebp
jmp 0x52c25a
imul edx, ecx
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, ecx
mul edx
add edx, ebp
jmp 0x52c22e
imul edx, ecx
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, ecx
mul edx
add edx, ebp
jmp 0x52c1d7
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x52c195
xor edx, edx
xor eax, eax
jmp 0x52c187
call fcn.004335c0
ud2
mov eax, edx
shr eax, cl
xor edx, edx
jmp 0x52c146
xor edx, edx
xor eax, eax
jmp 0x52c138
imul edx, ecx
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, ecx
mul edx
add edx, ebp
jmp 0x52c10f
imul edx, ecx
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, ecx
mul edx
add edx, ebp
jmp 0x52c0e0
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x52bf96
xor edx, edx
xor eax, eax
jmp 0x52bf88
call fcn.004335c0
ud2
call fcn.004335c0
ud2
mov eax, ebp
mov ebp, ecx
mov ecx, 0xa
xor ebx, ebx
mov edx, ebp
or ebp, ebx
jne 0x52c39a
mul ecx
mov ebp, eax
mov ecx, edx
inc esi
jmp 0x52bed0
imul edx, ecx
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, ecx
mul edx
add edx, ebp
jmp 0x52c390
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x52be4c
xor edx, edx
xor eax, eax
jmp 0x52be3e
mov eax, edx
shr eax, cl
xor edx, edx
jmp 0x52be1b
xor edx, edx
xor eax, eax
jmp 0x52be0d
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x52bd8c
xor edx, edx
xor eax, eax
jmp 0x52bd7e
mov edx, eax
shl edx, cl
xor eax, eax
jmp 0x52bd37
xor edx, edx
xor eax, eax
jmp 0x52bd29
mov dword [esi], eax
jmp 0x52ba6e
mov dword [ecx], eax
jmp 0x52ba5e
mov dword [ecx], eax
jmp 0x52ba04
mov dword [esi], eax
jmp 0x52b9f4