Function at 0x4c3bf4
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 0x4c3c12
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 0x4c42dd
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 0x4c45ab
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x4c3c6c
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x4c3c63
cmp eax, 0x2d
jne 0x4c3c88
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c4543
mov esi, 1
jmp 0x4c3c9f
cmp eax, 0x2b
jne 0x4c3c91
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c45ab
xor esi, esi
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x20], edx
xor ebx, ebx
mov dword [esp + 8], esi
xor ebp, ebp
mov dword [esp + 0xc], ebx
mov esi, edx
inc edi
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x4c459e
inc ecx
cmp ecx, 8
jg 0x4c454c
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c3cb5
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 8]
test ecx, ecx
jle 0x4c3d18
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.004c45c1
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x20]
adc ebp, edi
test esi, esi
je 0x4c3d2a
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 0x4c453a
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x4c3d66
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x4c3d5d
cmp eax, 0x2d
jne 0x4c3d82
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c44cc
mov esi, 1
jmp 0x4c3d99
cmp eax, 0x2b
jne 0x4c3d8b
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c453a
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 + 0x18], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 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 0x4c452d
inc ecx
cmp ecx, 8
jg 0x4c44d5
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c3dc3
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], esi
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x24], 0
jle 0x4c3e45
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
cdq
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + ebp*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ebp*4]
push ecx
push edi
mov ebp, dword [esp + 0x28]
call fcn.004c45c1
mov edi, eax
mov ecx, edx
add edi, dword [esp + 0x1c]
adc ecx, dword [esp + 0x28]
test esi, esi
je 0x4c3e57
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
jl 0x4c4073
or ebx, ebp
je 0x4c4073
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 edi, dword [ecx + ebx]
test edi, edi
je 0x4c44c3
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x4c3ea0
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x4c3e97
cmp eax, 0x2d
jne 0x4c3ebc
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c445b
mov ebx, 1
jmp 0x4c3ed3
cmp eax, 0x2b
jne 0x4c3ec5
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c44c3
xor ebx, ebx
xor edx, edx
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x64], edx
xor ebp, ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], ebx
mov ebx, edx
mov esi, edx
inc edi
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x4c44b6
inc ecx
cmp ecx, 8
jg 0x4c4464
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c3eeb
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
test ecx, ecx
jle 0x4c3f4e
mov eax, dword [esp + 0x64]
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.004c45c1
mov esi, eax
mov ebp, edx
add esi, dword [esp + 0x64]
adc ebp, edi
test ebx, ebx
je 0x4c3f60
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 0x4c4452
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x4c3f8d
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x4c3f84
cmp eax, 0x2d
jne 0x4c3fac
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c43e6
mov dword [esp + 0x70], 1
jmp 0x4c3fc9
cmp eax, 0x2b
jne 0x4c3fb5
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c4452
mov dword [esp + 0x70], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x68], ecx
xor edi, edi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], 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 0x4c4445
inc ecx
cmp ecx, 8
jg 0x4c43ef
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c3fe5
mov dword [esp + 0x68], esi
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
test ecx, ecx
jle 0x4c4050
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 edi
push ebx
call fcn.004c45c1
mov ebx, eax
mov edi, edx
add ebx, dword [esp + 0x68]
adc edi, dword [esp + 0x6c]
cmp dword [esp + 0x70], 0
je 0x4c4065
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 0x4c4073
or esi, ebp
jne 0x4c3e69
cmp dword [esp + 0x50], 0
jbe 0x4c4286
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [eax + edx*4]
mov ebp, dword [ecx + ebx]
test ebp, ebp
je 0x4c43dd
movsx eax, byte [ebp]
cmp eax, 0x20
jne 0x4c40ae
inc ebp
movsx eax, byte [ebp]
cmp eax, 0x20
je 0x4c40a4
cmp eax, 0x2d
jne 0x4c40cb
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c4376
mov ebx, 1
jmp 0x4c40e3
cmp eax, 0x2b
jne 0x4c40d5
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x4c43dd
xor ebx, ebx
xor edx, edx
xor ecx, ecx
xor esi, esi
xor edi, edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov ebx, edx
mov edi, edx
inc ebp
lea edi, [edi + edi*4]
lea edi, [eax + edi*2 - 0x30]
test edi, edi
jle 0x4c43d0
inc ecx
cmp ecx, 8
jg 0x4c437f
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c40fb
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
test ecx, ecx
jle 0x4c415f
mov eax, dword [esp + 0x40]
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.004c45c1
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x40]
adc edi, ebp
test ebx, ebx
je 0x4c4171
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 0x4c436d
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x4c419e
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x4c4195
cmp eax, 0x2d
jne 0x4c41bd
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c4301
mov dword [esp + 0x4c], 1
jmp 0x4c41da
cmp eax, 0x2b
jne 0x4c41c6
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x4c436d
mov dword [esp + 0x4c], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x44], ecx
xor ebp, ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], 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 0x4c4360
inc ecx
cmp ecx, 8
jg 0x4c430a
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x4c41f6
mov dword [esp + 0x44], edi
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
test ecx, ecx
jle 0x4c4261
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 ebp
push ebx
call fcn.004c45c1
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x44]
adc ebp, dword [esp + 0x48]
cmp dword [esp + 0x4c], 0
je 0x4c4276
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
jge 0x4c4286
dec dword [esp + 0x50]
jne 0x4c407e
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x50]
ja 0x4c42b7
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 0x4c3c3a
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 0x4c42f4
push ebp
push dword [esp + 0xa4]
mov ecx, ebx
push eax
call fcn.004c3bf4
cmp edi, esi
jb 0x4c3c10
jmp 0x4c45b4
xor ebx, ebx
xor ebp, ebp
jmp 0x4c4268
push ebp
push dword [esp + 0x40]
push 0
push 0x3b9aca00
call fcn.004c45c1
test esi, esi
mov ecx, edx
jne 0x4c4325
mov eax, dword [esp + 0x3c]
jne 0x4c4329
mov ecx, ebp
add eax, edi
mov dword [esp + 0x3c], eax
mov eax, edi
cdq
movsx eax, byte [ebx]
mov ebp, edx
adc ebp, ecx
lea esi, [eax - 0x30]
cmp esi, 9
ja 0x4c434f
xor edi, edi
mov esi, 1
xor ecx, ecx
jmp 0x4c41f6
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
jmp 0x4c4261
test esi, esi
je 0x4c4210
jmp 0x4c4206
xor ebx, ebx
xor ebp, ebp
jmp 0x4c4276
xor esi, esi
xor edi, edi
jmp 0x4c4163
push dword [esp + 0x34]
push esi
push 0
push 0x3b9aca00
call fcn.004c45c1
test ebx, ebx
mov ecx, edx
jne 0x4c4398
mov eax, esi
mov esi, eax
mov eax, edi
jne 0x4c43a2
mov ecx, dword [esp + 0x34]
cdq
movsx eax, byte [ebp]
add esi, edi
adc edx, ecx
mov dword [esp + 0x34], edx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x4c43c5
xor edi, edi
mov ebx, 1
xor ecx, ecx
jmp 0x4c40fb
mov edi, edx
mov ebx, dword [esp + 0x30]
jmp 0x4c415f
test ebx, ebx
je 0x4c4115
jmp 0x4c410b
xor esi, esi
xor edi, edi
jmp 0x4c4171
xor ebx, ebx
xor edi, edi
jmp 0x4c4057
push edi
push dword [esp + 0x64]
push 0
push 0x3b9aca00
call fcn.004c45c1
test ebp, ebp
mov ecx, edx
jne 0x4c440a
mov eax, dword [esp + 0x60]
jne 0x4c440e
mov ecx, edi
add eax, esi
mov dword [esp + 0x60], eax
mov eax, esi
cdq
movsx eax, byte [ebx]
mov edi, edx
adc edi, ecx
lea ebp, [eax - 0x30]
cmp ebp, 9
ja 0x4c4434
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x4c3fe5
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
jmp 0x4c4050
test ebp, ebp
je 0x4c3fff
jmp 0x4c3ff5
xor ebx, ebx
xor edi, edi
jmp 0x4c4065
xor esi, esi
xor ebp, ebp
jmp 0x4c3f52
push ebp
push dword [esp + 0x5c]
push 0
push 0x3b9aca00
call fcn.004c45c1
test ebx, ebx
mov ecx, edx
jne 0x4c447f
mov eax, dword [esp + 0x58]
jne 0x4c4483
mov ecx, ebp
add eax, esi
mov dword [esp + 0x58], eax
mov eax, esi
cdq
movsx eax, byte [edi]
mov ebp, edx
adc ebp, ecx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x4c44a9
xor esi, esi
mov ebx, 1
xor ecx, ecx
jmp 0x4c3eeb
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
jmp 0x4c3f4e
test ebx, ebx
je 0x4c3f05
jmp 0x4c3efb
xor esi, esi
xor ebp, ebp
jmp 0x4c3f60
xor edi, edi
xor ecx, ecx
jmp 0x4c3e49
push dword [esp + 0x14]
push edi
push 0
push 0x3b9aca00
call fcn.004c45c1
test ebp, ebp
mov ecx, edx
jne 0x4c44ee
mov eax, edi
mov edi, eax
mov eax, esi
jne 0x4c44f8
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 0x4c451a
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x4c3dc3
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov ecx, edx
mov esi, dword [esp + 0x10]
jmp 0x4c3e45
test ebp, ebp
je 0x4c3ddd
jmp 0x4c3dd3
xor edi, edi
xor ecx, ecx
jmp 0x4c3e57
xor ebx, ebx
xor ebp, ebp
jmp 0x4c3d1c
push ebp
push dword [esp + 0x10]
push 0
push 0x3b9aca00
call fcn.004c45c1
test ebx, ebx
mov ecx, edx
jne 0x4c4567
mov eax, dword [esp + 0xc]
jne 0x4c456b
mov ecx, ebp
add eax, esi
mov dword [esp + 0xc], eax
mov eax, esi
cdq
movsx eax, byte [edi]
mov ebp, edx
adc ebp, ecx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x4c4591
xor esi, esi
mov ebx, 1
xor ecx, ecx
jmp 0x4c3cb5
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 8]
jmp 0x4c3d18
test ebx, ebx
je 0x4c3ccf
jmp 0x4c3cc5
xor ebx, ebx
xor ebp, ebp
jmp 0x4c3d2a
add esp, 0x88
pop ebp
pop ebx
pop edi
pop esi
ret 0xc