Function at 0x4c31cf
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 0x4c31ed
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 0x4c38b0
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 0x4c3b7c
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x4c3247
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x4c323e
cmp eax, 0x2d
jne 0x4c3263
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c3b16
mov esi, 1
jmp 0x4c327a
cmp eax, 0x2b
jne 0x4c326c
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c3b7c
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 0x4c3b6f
inc ecx
cmp ecx, 8
jg 0x4c3b1f
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c3290
mov dword [esp + 0x20], esi
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 8]
test ecx, ecx
jle 0x4c32f3
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.004c3b92
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x20]
adc ebp, edi
test esi, esi
je 0x4c3305
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 0x4c3b0d
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x4c3341
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x4c3338
cmp eax, 0x2d
jne 0x4c335d
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c3a9f
mov esi, 1
jmp 0x4c3374
cmp eax, 0x2b
jne 0x4c3366
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c3b0d
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 0x4c3b00
inc ecx
cmp ecx, 8
jg 0x4c3aa8
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c339e
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 0x4c3420
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.004c3b92
mov edi, eax
mov ecx, edx
add edi, dword [esp + 0x1c]
adc ecx, dword [esp + 0x28]
test esi, esi
je 0x4c3432
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 0x4c3647
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 0x4c3a96
movsx eax, byte [ebp]
cmp eax, 0x20
jne 0x4c3475
inc ebp
movsx eax, byte [ebp]
cmp eax, 0x20
je 0x4c346b
cmp eax, 0x2d
jne 0x4c3492
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c3a2f
mov ebx, 1
jmp 0x4c34aa
cmp eax, 0x2b
jne 0x4c349c
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c3a96
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 0x4c3a89
inc ecx
cmp ecx, 8
jg 0x4c3a38
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c34c2
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
test ecx, ecx
jle 0x4c3526
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.004c3b92
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x64]
adc edi, ebp
test ebx, ebx
je 0x4c3538
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 0x4c3a26
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x4c3565
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x4c355c
cmp eax, 0x2d
jne 0x4c3584
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c39ba
mov dword [esp + 0x70], 1
jmp 0x4c35a1
cmp eax, 0x2b
jne 0x4c358d
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c3a26
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 0x4c3a19
inc ecx
cmp ecx, 8
jg 0x4c39c3
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c35bd
mov dword [esp + 0x68], edi
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x58]
test ecx, ecx
jle 0x4c3628
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.004c3b92
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x68]
adc ebp, dword [esp + 0x6c]
cmp dword [esp + 0x70], 0
je 0x4c363d
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 0x4c343c
cmp dword [esp + 0x50], 0
jbe 0x4c3859
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 0x4c39b1
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x4c3680
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x4c3677
cmp eax, 0x2d
jne 0x4c369c
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c3949
mov ebx, 1
jmp 0x4c36b3
cmp eax, 0x2b
jne 0x4c36a5
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c39b1
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 0x4c39a4
inc ecx
cmp ecx, 8
jg 0x4c3952
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c36cb
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
test ecx, ecx
jle 0x4c372e
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.004c3b92
mov esi, eax
mov ebp, edx
add esi, dword [esp + 0x40]
adc ebp, edi
test ebx, ebx
je 0x4c3740
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 0x4c3940
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x4c376d
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x4c3764
cmp eax, 0x2d
jne 0x4c378c
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c38d4
mov dword [esp + 0x4c], 1
jmp 0x4c37a9
cmp eax, 0x2b
jne 0x4c3795
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c3940
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 0x4c3933
inc ecx
cmp ecx, 8
jg 0x4c38dd
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c37c5
mov dword [esp + 0x44], esi
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
test ecx, ecx
jle 0x4c3830
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.004c3b92
mov ebx, eax
mov edi, edx
add ebx, dword [esp + 0x44]
adc edi, dword [esp + 0x48]
cmp dword [esp + 0x4c], 0
je 0x4c3845
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 0x4c3859
or esi, ebp
je 0x4c3859
dec dword [esp + 0x50]
jne 0x4c3652
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x50]
ja 0x4c388a
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 0x4c3215
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 0x4c38c7
push ebp
push dword [esp + 0xa4]
mov ecx, ebx
push eax
call fcn.004c31cf
cmp edi, esi
jb 0x4c31eb
jmp 0x4c3b85
xor ebx, ebx
xor edi, edi
jmp 0x4c3837
push edi
push dword [esp + 0x40]
push 0
push 0x3b9aca00
call fcn.004c3b92
test ebp, ebp
mov ecx, edx
jne 0x4c38f8
mov eax, dword [esp + 0x3c]
jne 0x4c38fc
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 0x4c3922
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x4c37c5
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
jmp 0x4c3830
test ebp, ebp
je 0x4c37df
jmp 0x4c37d5
xor ebx, ebx
xor edi, edi
jmp 0x4c3845
xor esi, esi
xor ebp, ebp
jmp 0x4c3732
push ebp
push dword [esp + 0x38]
push 0
push 0x3b9aca00
call fcn.004c3b92
test ebx, ebx
mov ecx, edx
jne 0x4c396d
mov eax, dword [esp + 0x34]
jne 0x4c3971
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 0x4c3997
xor esi, esi
mov ebx, 1
xor ecx, ecx
jmp 0x4c36cb
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
jmp 0x4c372e
test ebx, ebx
je 0x4c36e5
jmp 0x4c36db
xor esi, esi
xor ebp, ebp
jmp 0x4c3740
xor ebx, ebx
xor ebp, ebp
jmp 0x4c362f
push ebp
push dword [esp + 0x64]
push 0
push 0x3b9aca00
call fcn.004c3b92
test esi, esi
mov ecx, edx
jne 0x4c39de
mov eax, dword [esp + 0x60]
jne 0x4c39e2
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 0x4c3a08
xor edi, edi
mov esi, 1
xor ecx, ecx
jmp 0x4c35bd
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x58]
jmp 0x4c3628
test esi, esi
je 0x4c35d7
jmp 0x4c35cd
xor ebx, ebx
xor ebp, ebp
jmp 0x4c363d
xor esi, esi
xor edi, edi
jmp 0x4c352a
push dword [esp + 0x58]
push esi
push 0
push 0x3b9aca00
call fcn.004c3b92
test ebx, ebx
mov ecx, edx
jne 0x4c3a51
mov eax, esi
mov esi, eax
mov eax, edi
jne 0x4c3a5b
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 0x4c3a7e
xor edi, edi
mov ebx, 1
xor ecx, ecx
jmp 0x4c34c2
mov edi, edx
mov ebx, dword [esp + 0x54]
jmp 0x4c3526
test ebx, ebx
je 0x4c34dc
jmp 0x4c34d2
xor esi, esi
xor edi, edi
jmp 0x4c3538
xor edi, edi
xor ecx, ecx
jmp 0x4c3424
push dword [esp + 0x14]
push edi
push 0
push 0x3b9aca00
call fcn.004c3b92
test ebp, ebp
mov ecx, edx
jne 0x4c3ac1
mov eax, edi
mov edi, eax
mov eax, esi
jne 0x4c3acb
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 0x4c3aed
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x4c339e
mov ebx, dword [esp + 0x18]
mov ecx, edx
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
jmp 0x4c3420
test ebp, ebp
je 0x4c33b8
jmp 0x4c33ae
xor edi, edi
xor ecx, ecx
jmp 0x4c3432
xor ebx, ebx
xor ebp, ebp
jmp 0x4c32f7
push dword [esp + 0xc]
push ebx
push 0
push 0x3b9aca00
call fcn.004c3b92
test ebp, ebp
mov ecx, edx
jne 0x4c3b38
mov eax, ebx
mov ebx, eax
mov eax, esi
jne 0x4c3b42
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 0x4c3b64
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x4c3290
mov ebp, edx
mov esi, dword [esp + 8]
jmp 0x4c32f3
test ebp, ebp
je 0x4c32aa
jmp 0x4c32a0
xor ebx, ebx
xor ebp, ebp
jmp 0x4c3305
add esp, 0x88
pop ebp
pop ebx
pop edi
pop esi
ret 0xc