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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x88
mov ebx, ecx
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0xa4]
jmp 0x52a3cd
mov edx, edi
mov edi, edx
lea ecx, [esi + edx]
shr ecx, 1
mov eax, esi
mov ecx, dword [ebx + ecx*4]
cmp edx, esi
ja 0x52aa90
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], ebx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x74], ecx
mov edi, dword [ecx + ebx]
test edi, edi
je 0x52ad5c
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x52a427
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x52a41e
cmp eax, 0x2d
jne 0x52a443
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x52acf6
mov esi, 1
jmp 0x52a45a
cmp eax, 0x2b
jne 0x52a44c
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x52ad5c
xor esi, esi
xor edx, edx
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x20], edx
xor ebp, ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
mov esi, edx
inc edi
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x52ad4f
inc ecx
cmp ecx, 8
jg 0x52acff
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x52a470
mov dword [esp + 0x20], esi
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 8]
test ecx, ecx
jle 0x52a4d3
mov eax, dword [esp + 0x20]
cdq
mov eax, dword [esp + 0xa4]
mov edi, edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push ebp
push ebx
call fcn.0052ad72
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x20]
adc ebp, edi
test esi, esi
je 0x52a4e5
xor edx, edx
mov eax, ebx
xor ebx, ebx
mov ecx, ebp
xor ebp, ebp
sub ebx, eax
sbb ebp, ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xa0]
mov edx, dword [eax + edx]
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], edx
test edx, edx
je 0x52aced
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x52a521
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x52a518
cmp eax, 0x2d
jne 0x52a53d
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x52ac7f
mov esi, 1
jmp 0x52a554
cmp eax, 0x2b
jne 0x52a546
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x52aced
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x18], ebx
mov ebx, edx
mov ecx, edi
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp]
inc ebx
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x52ace0
inc ecx
cmp ecx, 8
jg 0x52ac88
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x52a57e
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
cmp dword [esp + 0x24], 0
jle 0x52a600
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
cdq
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + ebx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ebx*4]
push ecx
push edi
mov ebx, dword [esp + 0x28]
call fcn.0052ad72
mov edi, eax
mov ecx, edx
add edi, dword [esp + 0x1c]
adc ecx, dword [esp + 0x28]
test esi, esi
je 0x52a612
xor edx, edx
mov eax, edi
xor edi, edi
mov esi, ecx
xor ecx, ecx
sub edi, eax
sbb ecx, esi
sub ebx, edi
sbb ebp, ecx
jge 0x52a827
mov edx, dword [esp + 0x78]
inc edx
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x78], edx
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x74], ecx
mov ebp, dword [ecx + ebx]
test ebp, ebp
je 0x52ac76
movsx eax, byte [ebp]
cmp eax, 0x20
jne 0x52a655
inc ebp
movsx eax, byte [ebp]
cmp eax, 0x20
je 0x52a64b
cmp eax, 0x2d
jne 0x52a672
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x52ac0f
mov ebx, 1
jmp 0x52a68a
cmp eax, 0x2b
jne 0x52a67c
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x52ac76
xor ebx, ebx
xor edx, edx
xor ecx, ecx
xor esi, esi
xor edi, edi
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], ebx
mov ebx, edx
mov edi, edx
inc ebp
lea edi, [edi + edi*4]
lea edi, [eax + edi*2 - 0x30]
test edi, edi
jle 0x52ac69
inc ecx
cmp ecx, 8
jg 0x52ac18
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x52a6a2
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
test ecx, ecx
jle 0x52a706
mov eax, dword [esp + 0x64]
cdq
mov eax, dword [esp + 0xa4]
mov ebp, edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push edi
push esi
call fcn.0052ad72
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x64]
adc edi, ebp
test ebx, ebx
je 0x52a718
xor edx, edx
mov eax, esi
xor esi, esi
mov ecx, edi
xor edi, edi
sub esi, eax
sbb edi, ecx
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x84], 0
je 0x52ac06
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x52a745
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x52a73c
cmp eax, 0x2d
jne 0x52a764
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x52ab9a
mov dword [esp + 0x70], 1
jmp 0x52a781
cmp eax, 0x2b
jne 0x52a76d
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x52ac06
mov dword [esp + 0x70], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x68], ecx
xor ebp, ebp
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x60], ebx
mov ebx, edx
mov edi, ecx
mov esi, ebp
inc ebx
lea edi, [edi + edi*4]
lea edi, [eax + edi*2 - 0x30]
test edi, edi
jle 0x52abf9
inc ecx
cmp ecx, 8
jg 0x52aba3
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x52a79d
mov dword [esp + 0x68], edi
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x58]
test ecx, ecx
jle 0x52a808
mov eax, dword [esp + 0x68]
cdq
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x6c], edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push ebp
push ebx
call fcn.0052ad72
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x68]
adc ebp, dword [esp + 0x6c]
cmp dword [esp + 0x70], 0
je 0x52a81d
xor edx, edx
mov eax, ebx
xor ebx, ebx
mov ecx, ebp
xor ebp, ebp
sub ebx, eax
sbb ebp, ecx
sub esi, ebx
sbb edi, ebp
jl 0x52a61c
cmp dword [esp + 0x50], 0
jbe 0x52aa39
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [eax + edx*4]
mov edi, dword [ecx + ebx]
test edi, edi
je 0x52ab91
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x52a860
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x52a857
cmp eax, 0x2d
jne 0x52a87c
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x52ab29
mov ebx, 1
jmp 0x52a893
cmp eax, 0x2b
jne 0x52a885
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x52ab91
xor ebx, ebx
xor edx, edx
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x40], edx
xor ebp, ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov ebx, edx
mov esi, edx
inc edi
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x52ab84
inc ecx
cmp ecx, 8
jg 0x52ab32
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x52a8ab
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
test ecx, ecx
jle 0x52a90e
mov eax, dword [esp + 0x40]
cdq
mov eax, dword [esp + 0xa4]
mov edi, edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push ebp
push esi
call fcn.0052ad72
mov esi, eax
mov ebp, edx
add esi, dword [esp + 0x40]
adc ebp, edi
test ebx, ebx
je 0x52a920
xor edx, edx
mov eax, esi
xor esi, esi
mov ecx, ebp
xor ebp, ebp
sub esi, eax
sbb ebp, ecx
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x84], 0
je 0x52ab20
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x52a94d
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x52a944
cmp eax, 0x2d
jne 0x52a96c
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x52aab4
mov dword [esp + 0x4c], 1
jmp 0x52a989
cmp eax, 0x2b
jne 0x52a975
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x52ab20
mov dword [esp + 0x4c], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x44], ecx
xor edi, edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], ebx
mov ebx, edx
mov esi, ecx
mov ebp, edi
inc ebx
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x52ab13
inc ecx
cmp ecx, 8
jg 0x52aabd
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x52a9a5
mov dword [esp + 0x44], esi
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
test ecx, ecx
jle 0x52aa10
mov eax, dword [esp + 0x44]
cdq
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x48], edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push edi
push ebx
call fcn.0052ad72
mov ebx, eax
mov edi, edx
add ebx, dword [esp + 0x44]
adc edi, dword [esp + 0x48]
cmp dword [esp + 0x4c], 0
je 0x52aa25
xor edx, edx
mov eax, ebx
xor ebx, ebx
mov ecx, edi
xor edi, edi
sub ebx, eax
sbb edi, ecx
sub esi, ebx
sbb ebp, edi
jl 0x52aa39
or esi, ebp
je 0x52aa39
dec dword [esp + 0x50]
jne 0x52a832
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x50]
ja 0x52aa6a
mov esi, eax
mov ebp, dword [esp + 0x50]
xor eax, eax
mov ebx, dword [esp + 0x7c]
cmp eax, ebp
mov ecx, dword [esp + 0x74]
mov edx, dword [ebx + ebp*4]
mov dword [ebx + esi*4], edx
mov dword [ebx + ebp*4], ecx
sbb ebp, 0
inc esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x50]
jbe 0x52a3f5
mov edi, eax
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0xa4]
lea eax, [edi - 1]
cmp edx, eax
jae 0x52aaa7
push ebp
push dword [esp + 0xa4]
mov ecx, ebx
push eax
call fcn.0052a3af
cmp edi, esi
jb 0x52a3cb
jmp 0x52ad65
xor ebx, ebx
xor edi, edi
jmp 0x52aa17
push edi
push dword [esp + 0x40]
push 0
push 0x3b9aca00
call fcn.0052ad72
test ebp, ebp
mov ecx, edx
jne 0x52aad8
mov eax, dword [esp + 0x3c]
jne 0x52aadc
mov ecx, edi
add eax, esi
mov dword [esp + 0x3c], eax
mov eax, esi
cdq
movsx eax, byte [ebx]
mov edi, edx
adc edi, ecx
lea ebp, [eax - 0x30]
cmp ebp, 9
ja 0x52ab02
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x52a9a5
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
jmp 0x52aa10
test ebp, ebp
je 0x52a9bf
jmp 0x52a9b5
xor ebx, ebx
xor edi, edi
jmp 0x52aa25
xor esi, esi
xor ebp, ebp
jmp 0x52a912
push ebp
push dword [esp + 0x38]
push 0
push 0x3b9aca00
call fcn.0052ad72
test ebx, ebx
mov ecx, edx
jne 0x52ab4d
mov eax, dword [esp + 0x34]
jne 0x52ab51
mov ecx, ebp
add eax, esi
mov dword [esp + 0x34], eax
mov eax, esi
cdq
movsx eax, byte [edi]
mov ebp, edx
adc ebp, ecx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x52ab77
xor esi, esi
mov ebx, 1
xor ecx, ecx
jmp 0x52a8ab
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
jmp 0x52a90e
test ebx, ebx
je 0x52a8c5
jmp 0x52a8bb
xor esi, esi
xor ebp, ebp
jmp 0x52a920
xor ebx, ebx
xor ebp, ebp
jmp 0x52a80f
push ebp
push dword [esp + 0x64]
push 0
push 0x3b9aca00
call fcn.0052ad72
test esi, esi
mov ecx, edx
jne 0x52abbe
mov eax, dword [esp + 0x60]
jne 0x52abc2
mov ecx, ebp
add eax, edi
mov dword [esp + 0x60], eax
mov eax, edi
cdq
movsx eax, byte [ebx]
mov ebp, edx
adc ebp, ecx
lea esi, [eax - 0x30]
cmp esi, 9
ja 0x52abe8
xor edi, edi
mov esi, 1
xor ecx, ecx
jmp 0x52a79d
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x58]
jmp 0x52a808
test esi, esi
je 0x52a7b7
jmp 0x52a7ad
xor ebx, ebx
xor ebp, ebp
jmp 0x52a81d
xor esi, esi
xor edi, edi
jmp 0x52a70a
push dword [esp + 0x58]
push esi
push 0
push 0x3b9aca00
call fcn.0052ad72
test ebx, ebx
mov ecx, edx
jne 0x52ac31
mov eax, esi
mov esi, eax
mov eax, edi
jne 0x52ac3b
mov ecx, dword [esp + 0x58]
cdq
movsx eax, byte [ebp]
add esi, edi
adc edx, ecx
mov dword [esp + 0x58], edx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x52ac5e
xor edi, edi
mov ebx, 1
xor ecx, ecx
jmp 0x52a6a2
mov edi, edx
mov ebx, dword [esp + 0x54]
jmp 0x52a706
test ebx, ebx
je 0x52a6bc
jmp 0x52a6b2
xor esi, esi
xor edi, edi
jmp 0x52a718
xor edi, edi
xor ecx, ecx
jmp 0x52a604
push dword [esp + 0x14]
push edi
push 0
push 0x3b9aca00
call fcn.0052ad72
test ebp, ebp
mov ecx, edx
jne 0x52aca1
mov eax, edi
mov edi, eax
mov eax, esi
jne 0x52acab
mov ecx, dword [esp + 0x14]
cdq
movsx eax, byte [ebx]
add edi, esi
adc edx, ecx
mov dword [esp + 0x14], edx
lea ebp, [eax - 0x30]
cmp ebp, 9
ja 0x52accd
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x52a57e
mov ebx, dword [esp + 0x18]
mov ecx, edx
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
jmp 0x52a600
test ebp, ebp
je 0x52a598
jmp 0x52a58e
xor edi, edi
xor ecx, ecx
jmp 0x52a612
xor ebx, ebx
xor ebp, ebp
jmp 0x52a4d7
push dword [esp + 0xc]
push ebx
push 0
push 0x3b9aca00
call fcn.0052ad72
test ebp, ebp
mov ecx, edx
jne 0x52ad18
mov eax, ebx
mov ebx, eax
mov eax, esi
jne 0x52ad22
mov ecx, dword [esp + 0xc]
cdq
movsx eax, byte [edi]
add ebx, esi
adc edx, ecx
mov dword [esp + 0xc], edx
lea ebp, [eax - 0x30]
cmp ebp, 9
ja 0x52ad44
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x52a470
mov ebp, edx
mov esi, dword [esp + 8]
jmp 0x52a4d3
test ebp, ebp
je 0x52a48a
jmp 0x52a480
xor ebx, ebx
xor ebp, ebp
jmp 0x52a4e5
add esp, 0x88
pop ebp
pop ebx
pop edi
pop esi
ret 0xc