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

Disassembly:
sub esp, 0x6c
push ebx
push ebp
mov ebx, ecx
push esi
mov esi, dword [esp + 0x88]
mov ecx, dword [esi]
lea eax, [ecx + 3]
mov edx, eax
and edx, 0xfffffffc
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0xc]
mov esi, dword [esi + 4]
neg edx
and edx, 3
shr eax, 2
mov dword [esp + 0x34], edx
lea edx, [esi + edx + 3]
shr edx, 2
dec ecx
and ecx, 3
push edi
lea edi, [ecx + eax*4]
imul edi, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x88]
mov ebp, dword [eax]
mov eax, dword [ebx + 0x104]
mov dword [esp + 0x3c], ecx
mov ecx, eax
add ebp, edi
shr eax, 1
and ecx, 1
cmp ebp, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], edi
jne 0x4c0dbc
mov eax, dword [ebx + 0x100]
jmp 0x4c0f19
test ecx, ecx
je 0x4c0e31
push ebp
call fcn.004991a0
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x2c], esi
je 0x4c0f04
mov eax, dword [ebx + 0x104]
shr eax, 1
cmp eax, ebp
jbe 0x4c0de5
mov eax, ebp
mov edx, dword [ebx + 0x100]
test edx, edx
je 0x4c0e24
test eax, eax
je 0x4c0e11
mov edi, dword [esp + 0x2c]
mov ecx, eax
mov esi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov eax, dword [ebx + 0x100]
test eax, eax
je 0x4c0e24
push eax
call fcn.00499410
add esp, 4
mov dword [ebx + 0x100], esi
mov eax, esi
jmp 0x4c0f04
mov esi, 1
cmp ebp, esi
jb 0x4c0e46
lea ebx, [ebx]
add esi, esi
cmp esi, ebp
jbe 0x4c0e40
mov edx, dword [ebx + 0x100]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
fild qword [esp + 0x54]
mov dword [esp + 0x24], edx
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c0e7f
mov edx, 1
shl edx, cl
jmp 0x4c0e81
xor edx, edx
cmp edx, eax
jae 0x4c0e87
add edx, edx
cmp edx, esi
je 0x4c0f00
push esi
call fcn.004991a0
add esp, 4
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x4c0ea2
mov dword [esp + 0x24], eax
jmp 0x4c0f00
mov eax, dword [ebx + 0x104]
shr eax, 1
cmp eax, esi
ja 0x4c0eb0
mov esi, eax
mov edx, dword [ebx + 0x100]
test edx, edx
je 0x4c0eeb
test esi, esi
je 0x4c0ed8
mov edi, dword [esp + 0x2c]
mov ecx, esi
mov eax, ecx
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x28]
mov eax, dword [ebx + 0x100]
test eax, eax
je 0x4c0eeb
push eax
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x100], eax
mov dword [esp + 0x24], eax
lea esp, [esp]
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x104]
add ebp, ebp
xor ecx, ebp
and ecx, 1
xor ecx, ebp
mov dword [ebx + 0x104], ecx
test eax, eax
jne 0x4c0f2c
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x6c
ret 0x14
mov eax, dword [ebx + 0x10c]
test al, 1
jne 0x4c0fed
shr eax, 1
lea edx, [eax - 1]
test eax, edx
jne 0x4c0faa
lea esi, [eax + eax]
test esi, esi
jne 0x4c0f4f
mov esi, 1
lea eax, [esi*4]
push eax
call fcn.004991a0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x4c0fed
mov eax, dword [ebx + 0x10c]
shr eax, 1
cmp eax, esi
ja 0x4c0f77
mov esi, eax
mov edx, dword [ebx + 0x108]
test edx, edx
je 0x4c0fa4
test esi, esi
je 0x4c0f91
mov ecx, esi
mov esi, edx
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x28]
mov eax, dword [ebx + 0x108]
test eax, eax
je 0x4c0fa4
push eax
call fcn.00499410
add esp, 4
mov dword [ebx + 0x108], ebp
mov ecx, dword [ebx + 0x10c]
mov edx, dword [esp + 0x88]
mov eax, dword [ebx + 0x108]
mov esi, dword [edx]
shr ecx, 1
mov dword [eax + ecx*4], esi
mov ecx, dword [ebx + 0x10c]
mov eax, ecx
and eax, 0xfffffffe
add eax, 2
and ecx, 1
xor eax, ecx
mov ecx, dword [ebx + 0x108]
mov dword [ebx + 0x10c], eax
shr eax, 1
lea eax, [ecx + eax*4 - 4]
test eax, eax
jne 0x4c0ffc
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x6c
ret 0x14
test edi, edi
jne 0x4c100f
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x6c
ret 0x14
mov ebp, dword [ebx + 0x100]
mov ecx, edi
mov edi, dword [edx]
mov edx, ecx
shr ecx, 2
add edi, ebp
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
add ecx, eax
cmp ecx, 3
mov ecx, dword [edx + 0xd8]
seta al
cmp ecx, 0x10
mov byte [esp + 0x13], al
jbe 0x4c1147
mov ecx, dword [esp + 0x8c]
mov esi, dword [ecx + 4]
xor edx, edx
test esi, esi
mov dword [esp + 0x18], edx
jbe 0x4c15dc
mov ecx, dword [esp + 0x34]
movsx eax, al
add eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x88]
mov edi, dword [ecx]
mov esi, dword [esp + 0x24]
mov cl, byte [esp + 0x90]
add eax, edx
shr eax, 2
imul eax, dword [esp + 0x40]
add eax, edi
add eax, esi
test cl, cl
je 0x4c10b1
mov ecx, dword [esp + 0x1c]
jmp 0x4c10ba
mov ecx, dword [esp + 0x8c]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x80]
imul ecx, edx
add ecx, esi
mov esi, dword [esp + 0x30]
mov esi, dword [esi + 0x100]
add esi, eax
mov eax, dword [esp + 0x8c]
mov ebx, dword [eax]
xor edi, edi
test ebx, ebx
mov dword [esp + 0x2c], ecx
jbe 0x4c112b
mov edx, dword [esp + 0x20]
mov cl, byte [ecx]
lea eax, [edi + edx]
shr eax, 2
mov dl, byte [eax + esi]
xor ebx, ebx
add eax, esi
mov bl, cl
movzx ebp, dl
add ebx, ebp
cmp ebx, 0xff
jbe 0x4c110c
mov byte [eax], 0xff
jmp 0x4c1110
add cl, dl
mov byte [eax], cl
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x8c]
mov edx, dword [eax]
inc ecx
inc edi
cmp edi, edx
mov dword [esp + 0x2c], ecx
jb 0x4c10e5
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + 4]
inc edx
cmp edx, eax
mov dword [esp + 0x18], edx
jb 0x4c1081
jmp 0x4c15dc
movsx edi, al
add edi, dword [esp + 0x34]
mov dword [esp + 0x18], edi
mov ebp, 0
je 0x4c1632
mov eax, 1
cmp edi, eax
jb 0x4c116c
add eax, eax
cmp eax, edi
jbe 0x4c1166
xor esi, esi
mov ecx, esi
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
mov dword [esp + 0x44], esi
js 0x4c118b
mov edx, 1
shl edx, cl
jmp 0x4c118d
xor edx, edx
cmp edx, eax
je 0x4c11b0
lea edx, [eax*4]
push edx
call fcn.004991a0
add esp, 4
test eax, eax
jne 0x4c11a9
xor esi, esi
jmp 0x4c11b0
mov ebp, eax
mov esi, eax
lea ecx, [ecx]
lea eax, [edi + edi]
and eax, 0xfffffffe
test esi, esi
mov dword [esp + 0x58], eax
je 0x4c1625
mov esi, dword [esp + 0x8c]
mov eax, dword [esi + 4]
xor edx, edx
test eax, eax
mov dword [esp + 0x2c], edx
jbe 0x4c1345
jmp 0x4c11e7
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x2c]
mov cl, byte [esp + 0x90]
test cl, cl
mov edi, dword [esp + 0x1c]
mov eax, edi
jne 0x4c11fa
mov eax, dword [esi]
mov ebx, dword [esp + 0x80]
imul eax, edx
add eax, ebx
test cl, cl
mov ebx, eax
mov eax, edi
jne 0x4c1210
mov eax, dword [esi]
mov ecx, dword [esp + 0x84]
imul eax, edx
add eax, ecx
test ebp, ebp
mov dword [esp + 0x48], eax
je 0x4c123f
mov ecx, dword [esp + 0x58]
shr ecx, 1
shl ecx, 2
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
xor esi, esi
test eax, eax
jbe 0x4c12ca
lea ecx, [ecx]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], 0
fild qword [esp + 0x5c]
fadd qword [0x65c2f8]
fmul qword [0x660270]
fsub qword [0x65c300]
call fcn.00487bd0
mov edi, dword [esp + 0x20]
mov ecx, eax
sub ecx, edi
sub ecx, 7
mov edx, 0x69ebf0
sub edi, eax
lea esp, [esp]
test ecx, ecx
jl 0x4c12b5
mov eax, dword [esp + 0x8c]
cmp ecx, dword [eax]
jge 0x4c12b5
movzx eax, byte [ecx + ebx]
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul dword [edx]
fadd dword [ebp + esi*4]
fstp dword [ebp + esi*4]
inc ecx
lea eax, [edi + ecx]
add edx, 4
cmp eax, 9
jl 0x4c1290
mov eax, dword [esp + 0x18]
inc esi
cmp esi, eax
jb 0x4c1250
mov eax, dword [esp + 0x18]
xor ecx, ecx
test eax, eax
jbe 0x4c132a
mov edx, dword [esp + 0x48]
mov esi, eax
lea ebx, [ebx]
fld dword [ebp + ecx*4]
fcomp dword [0x65c2f0]
fnstsw ax
test ah, 5
jp 0x4c12f7
mov byte [ecx + edx], 0
jmp 0x4c1325
fld dword [ebp + ecx*4]
fcomp dword [0x661eb8]
fnstsw ax
test ah, 0x41
jne 0x4c130e
mov byte [ecx + edx], 0xff
jmp 0x4c1325
fld dword [ebp + ecx*4]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fistp dword [esp + 0x4c]
mov al, byte [esp + 0x4c]
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jb 0x4c12e0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 4]
inc eax
cmp eax, edx
mov dword [esp + 0x2c], eax
jb 0x4c11dc
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x14]
mov eax, esi
shr esi, 1
and eax, 1
cmp ebx, esi
jne 0x4c135f
mov eax, ebp
jmp 0x4c1468
test eax, eax
je 0x4c13c1
mov edi, dword [esp + 0x14]
lea edx, [edi*4]
push edx
call fcn.004991a0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4c1381
xor ecx, ecx
jmp 0x4c13a8
cmp esi, edi
jbe 0x4c1387
mov esi, edi
test ebp, ebp
je 0x4c13a4
test esi, esi
je 0x4c139b
mov ecx, esi
mov esi, ebp
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
push ebp
call fcn.00499410
add esp, 4
mov ebp, ebx
mov ecx, ebx
mov edx, dword [esp + 0x58]
lea eax, [edi + edi]
xor edx, eax
and edx, 1
xor edx, eax
mov dword [esp + 0x58], edx
mov eax, ecx
jmp 0x4c146c
mov edi, 1
cmp ebx, edi
jb 0x4c13d6
lea ebx, [ebx]
add edi, edi
cmp edi, ebx
jbe 0x4c13d0
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], 0
fild qword [esp + 0x64]
mov edx, ebp
fstp dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c1407
mov eax, 1
shl eax, cl
jmp 0x4c1409
xor eax, eax
cmp eax, esi
jae 0x4c140f
add eax, eax
cmp eax, edi
je 0x4c1454
lea eax, [edi*4]
push eax
call fcn.004991a0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4c142d
xor edx, edx
jmp 0x4c1450
cmp esi, edi
mov ecx, edi
ja 0x4c1435
mov ecx, esi
test ebp, ebp
je 0x4c144c
test ecx, ecx
je 0x4c1443
mov esi, ebp
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push ebp
call fcn.00499410
add esp, 4
mov ebp, ebx
mov edx, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
lea eax, [ebx + ebx]
xor ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x58], ecx
mov eax, edx
mov edi, dword [esp + 0x14]
test eax, eax
je 0x4c1625
mov eax, dword [esp + 0x18]
xor ebx, ebx
test eax, eax
jbe 0x4c15cf
test ebp, ebp
je 0x4c14a5
mov ecx, dword [esp + 0x58]
shr ecx, 1
shl ecx, 2
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x14]
xor esi, esi
test edi, edi
jbe 0x4c154f
mov eax, dword [esp + 0x38]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], esi
fild qword [esp + 0x6c]
nop
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], 0
fild qword [esp + 0x74]
fadd qword [0x65c2f8]
fmul qword [0x660270]
fsub st(1)
fsub qword [0x65c300]
call fcn.00487bd0
mov edi, dword [esp + 0x84]
lea edx, [eax - 7]
mov eax, edx
imul eax, dword [esp + 0x1c]
add eax, ebx
mov ecx, 0x69ebf0
add eax, edi
test edx, edx
jl 0x4c1530
mov edi, dword [esp + 0x8c]
cmp edx, dword [edi + 4]
jge 0x4c1530
movzx edi, byte [eax]
fld dword [ecx]
mov dword [esp + 0x48], edi
fild dword [esp + 0x48]
fmulp st(1)
fmul qword [0x661eb0]
fadd dword [ebp + esi*4]
fstp dword [ebp + esi*4]
add eax, dword [esp + 0x1c]
add ecx, 4
inc edx
cmp ecx, str.Mangal
jl 0x4c1503
mov edi, dword [esp + 0x14]
inc esi
cmp esi, edi
jb 0x4c14c0
fstp st(0)
xor edx, edx
test edi, edi
jbe 0x4c15c2
xor esi, esi
mov ecx, dword [esp + 0x88]
fld dword [ebp + edx*4]
mov ecx, dword [ecx]
fcomp dword [0x65c2f0]
mov eax, dword [esp + 0x24]
add ecx, esi
add ecx, eax
mov eax, dword [esp + 0x30]
add ecx, dword [eax + 0x100]
fnstsw ax
test ah, 5
jp 0x4c1589
mov byte [ecx + ebx], 0
jmp 0x4c15b7
fld dword [ebp + edx*4]
fcomp dword [0x661eb8]
fnstsw ax
test ah, 0x41
jne 0x4c15a0
mov byte [ecx + ebx], 0xff
jmp 0x4c15b7
fld dword [ebp + edx*4]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fistp dword [esp + 0x50]
mov al, byte [esp + 0x50]
mov byte [ecx + ebx], al
mov ecx, dword [esp + 0x18]
inc edx
add esi, ecx
cmp edx, edi
jb 0x4c1557
mov eax, dword [esp + 0x18]
inc ebx
cmp ebx, eax
jb 0x4c1482
test ebp, ebp
je 0x4c15dc
push ebp
call fcn.00499410
add esp, 4
movsx ecx, byte [esp + 0x13]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add ecx, edi
imul ecx, dword [esp + 0x14]
add esi, ecx
inc eax
cmp eax, 4
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
jb 0x4c1035
mov eax, dword [esp + 0x88]
mov ecx, dword [eax]
mov edx, dword [esp + 0x28]
pop edi
pop esi
add ecx, edx
pop ebp
mov dword [eax], ecx
xor eax, eax
pop ebx
add esp, 0x6c
ret 0x14
test ebp, ebp
je 0x4c1632
push ebp
call fcn.00499410
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x6c
ret 0x14