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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x1c]
push esi
push edi
mov esi, dword [ecx + 0x14]
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], edi
test eax, eax
jle 0x4c6d67
mov edi, dword [ebp - 0x20]
mov esi, eax
mov dword [ebp - 0x24], eax
nop
mov eax, edi
cdq
idiv esi
mov ecx, eax
cmp ecx, dword [ebp - 0x14]
mov edx, ecx
cmovle edx, dword [ebp - 0x14]
sub edi, ecx
dec esi
mov dword [ebp - 0x14], edx
sub dword [ebp - 0x24], 1
jne 0x4c6d40
mov esi, dword [ebp - 0x20]
xor edi, edi
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp + 0x14]
mov edx, dword [eax*4 + 0x53f470]
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xc], edx
movzx edx, byte [edx + 0x53f458]
mov eax, dword [eax*4 + 0x53f470]
mov dword [ebp - 0x28], edx
mov dword [ebp + 0x18], edx
mov edx, dword [ebp + 8]
mov dword [ebp + 0x14], eax
cmp dword [edx + 0x34], 6
jne 0x4c6d9d
cmp dword [ecx + 0x34], 6
je 0x4c6e0f
mov edx, dword [ebp - 0xc]
lea ecx, [eax - 5]
add edx, 0xfffffffb
cmp edx, 5
ja 0x4c6dd5
cmp ecx, 5
ja 0x4c6dd5
cmp dword [ebp + 0x28], 0
je 0x4c6dbf
mov dword [ebp - 8], 4
jmp 0x4c6e0c
mov ecx, dword [edx*4 + str._a_a_a_a]
mov edx, dword [ebp + 8]
mov dword [ebp - 8], 2
mov dword [ebp + 0x18], ecx
jmp 0x4c6e12
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff5
cmp eax, 5
ja 0x4c6dee
cmp ecx, 5
ja 0x4c6dee
mov dword [ebp - 8], 3
jmp 0x4c6e09
mov eax, dword [ebp + 0x14]
cmp edx, 5
ja 0x4c6e0c
add eax, 0xfffffff5
xor ecx, ecx
cmp eax, 5
mov edx, 1
cmovbe ecx, edx
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
movzx eax, byte [eax + 0x53f458]
cmp dword [ebp - 0x28], eax
jne 0x4c7512
movsx ecx, byte [ecx + 0x53f4b4]
mov eax, dword [ebp + 0xc]
movss xmm4, dword [edx + 0x18]
mov edx, dword [edx + 0x14]
shl ecx, 7
movss xmm1, dword [eax + 0x18]
add ecx, 0x53f1d8
cmp esi, 4
jle 0x4c6ea6
cmp edx, 4
jle 0x4c6ea6
movss xmm5, dword [0x4f7480]
comiss xmm5, xmm1
jb 0x4c6e66
mov esi, dword [ebp + 0xc]
xor eax, eax
cmp dword [esi + 0x68], eax
setne al
jmp 0x4c6ebb
movss xmm0, dword [0x4f74f4]
comiss xmm0, xmm1
jb 0x4c6e7a
mov eax, 2
jmp 0x4c6eb8
movss xmm0, dword [0x4f7bbc]
comiss xmm0, xmm1
mov esi, dword [ebp + 0xc]
jb 0x4c6e91
mov eax, 3
jmp 0x4c6ebb
movss xmm0, dword [0x4f7504]
xor eax, eax
comiss xmm0, xmm1
setb al
add eax, 5
jmp 0x4c6ebb
movss xmm5, dword [0x4f7480]
xor eax, eax
cmp esi, edx
setge al
add eax, 6
mov esi, dword [ebp + 0xc]
shl eax, 4
add eax, ecx
mov ecx, dword [ebp + 8]
movd xmm3, dword [ecx + 0x48]
mov ecx, dword [esi + 0x48]
cvtdq2ps xmm3, xmm3
mov esi, dword [ebp + 0x10]
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm3
mulss xmm3, dword [eax]
movaps xmm0, xmm2
mulss xmm1, dword [eax + 0xc]
mulss xmm0, dword [eax + 8]
mulss xmm4, xmm2
addss xmm1, xmm0
mulss xmm4, dword [eax + 4]
xor eax, eax
cvtps2pd xmm1, xmm1
addss xmm4, xmm3
cvtps2pd xmm0, xmm4
comisd xmm0, xmm1
setae al
imul edx, dword [ebp + 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
sub eax, dword [esi]
mov esi, dword [ebp + 0xc]
inc eax
imul eax, dword [ebp + 0x18]
cmp dword [ebp - 0x24], 0
lea eax, [eax*4 + 4]
mov dword [ebp - 0x18], eax
lea eax, [edx*4 + 4]
mov dword [ebp - 0x20], eax
je 0x4c6f47
mov eax, dword [ebp - 0x18]
add eax, 0xf
and eax, 0xfffffff0
test eax, 0xfff
lea edx, [eax + 0xc0]
cmovne edx, eax
inc ecx
cmp dword [esi + 0x68], 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x2c], ecx
jne 0x4c6f6c
cmp ecx, dword [ebp - 0x14]
cmovg ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ecx
imul eax, dword [ebp + 0x1c], 0x68
imul edx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], edx
xor edx, edx
movss xmm2, dword [0x4f7af0]
lea ecx, [edx + 0xf]
and ecx, 0xfffffff0
mov dword [ebp - 0x34], 0
test edx, edx
mov dword [ebp - 0x38], 0
mov eax, ecx
cmove eax, edi
mov edi, eax
lea edx, [ecx + 0x1a3]
mov eax, dword [ebp - 4]
and edx, 0xfffffff0
mov dword [ebp - 0x10], edi
test eax, eax
je 0x4c6fb9
mov dword [edi + 0x150], edx
add edx, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x1c]
test edi, edi
je 0x4c70c4
cmp dword [ebp - 8], 2
mov dword [edi + 0x14c], eax
mov eax, dword [ebp - 0x30]
mov dword [edi + 0x168], eax
mov eax, dword [ebp - 0x28]
mov dword [edi + 0x188], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x18c], eax
mov eax, dword [ebp + 0x20]
mov dword [edi + 0x17c], eax
mov eax, dword [ebp + 0x24]
mov dword [edi + 0x180], eax
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x190], eax
mov eax, dword [ebp - 0x40]
mov dword [edi + 0x108], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x184], eax
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x170], eax
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x10c], 0
mov dword [edi + 0x16c], ecx
mov dword [edi + 0x174], eax
mov dword [edi + 0x158], 0
mov dword [edi + 0x160], 0
jne 0x4c706d
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x53f4c0]
mov dword [edi + 0x158], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax*4 + 0x53f4d8]
jmp 0x4c70ad
cmp dword [ebp - 8], 4
jne 0x4c7088
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x53f4f0]
mov dword [edi + 0x158], eax
mov eax, dword [ebp + 0x14]
jmp 0x4c70a6
cmp dword [ebp - 8], 1
jne 0x4c70a0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x53f4f0]
mov dword [edi + 0x158], eax
jmp 0x4c70b3
cmp dword [ebp - 8], 3
jne 0x4c70b6
mov eax, dword [eax*4 + 0x53f508]
mov dword [edi + 0x160], eax
mov eax, dword [ebp + 0x14]
cmp dword [ebp - 0xc], 2
jne 0x4c7128
cmp eax, 3
je 0x4c7133
mov eax, dword [ebp - 4]
test ecx, ecx
jle 0x4c7187
test eax, eax
je 0x4c715d
xor esi, esi
mov dword [ebp - 0x30], ecx
nop dword [eax]
mov eax, dword [edi + 0x150]
lea ecx, [edx + 0xf]
mov edx, dword [ebp - 0x1c]
lea esi, [esi + 0x68]
and ecx, 0xfffffff0
add edx, 0xf
mov dword [esi + eax - 0x68], ecx
mov eax, dword [ebp - 0x18]
add eax, 0xf
add ecx, eax
mov eax, dword [edi + 0x150]
and ecx, 0xfffffff0
add edx, ecx
and edx, 0xfffffff0
mov dword [esi + eax - 0x48], ecx
mov eax, dword [edi + 0x150]
mov dword [esi + eax - 0x44], edx
add edx, dword [ebp - 0x20]
sub dword [ebp - 0x30], 1
jne 0x4c70e0
jmp 0x4c7184
cmp dword [ebp - 0xc], 3
jne 0x4c70c1
cmp eax, 2
jne 0x4c70c1
mov eax, dword [ebp + 8]
comiss xmm5, dword [eax + 0x18]
mov eax, dword [ebp - 4]
jbe 0x4c714e
mov dword [edi + 0x160], 0x4ca710
jmp 0x4c70c4
mov dword [edi + 0x158], 0x4ca710
jmp 0x4c70c4
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
add edx, 0xf
and edx, 0xfffffff0
add edx, 0xf
add edx, edi
and edx, 0xfffffff0
add edx, 0xf
add edx, esi
and edx, 0xfffffff0
add edx, dword [ebp - 0x20]
sub ecx, 1
jne 0x4c7163
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0x68], 0
jne 0x4c7217
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x18]
imul ecx, dword [ebp + 0x1c]
mov eax, dword [esi + 0x78]
mov esi, dword [esi + 0x74]
add eax, esi
mov edi, dword [ebp - 0x10]
cmp ecx, eax
jl 0x4c71d0
test edi, edi
je 0x4c7214
mov eax, dword [edi + 0x150]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x150]
mov eax, dword [eax]
add eax, esi
mov esi, ecx
mov dword [esi + 0xc], eax
jmp 0x4c7217
mov eax, dword [ebp - 4]
add edx, 0xf
and edx, 0xfffffff0
test eax, eax
je 0x4c71f5
mov eax, dword [ebp + 0xc]
mov dword [eax + 8], edx
add edx, 0xf
add edx, esi
mov esi, eax
and edx, 0xfffffff0
mov dword [esi + 0xc], edx
add edx, dword [esi + 0x78]
jmp 0x4c7217
add edx, 0xf
add edx, esi
and edx, 0xfffffff0
test eax, eax
je 0x4c720c
mov esi, dword [ebp + 0xc]
mov dword [esi + 0xc], edx
add edx, dword [esi + 0x78]
jmp 0x4c7217
mov esi, dword [ebp + 0xc]
add edx, dword [esi + 0x78]
jmp 0x4c7217
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
add edx, 0xf
and edx, 0xfffffff0
mov ecx, dword [eax + 0x54]
add ecx, 0xf
add ecx, edx
and ecx, 0xfffffff0
cmp dword [ebp - 4], 0
je 0x4c723a
mov dword [eax], edx
mov edx, eax
mov dword [edx + 4], ecx
jmp 0x4c723c
mov edx, eax
add ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x4c72ac
mov eax, dword [edx + 0x3c]
cmp eax, dword [esi + 0x3c]
jne 0x4c72ac
mov eax, dword [edx + 0x40]
cmp eax, dword [esi + 0x40]
jne 0x4c72ac
mov eax, dword [edx + 0x14]
cmp eax, dword [esi + 0x14]
jne 0x4c72ac
movss xmm1, dword [edx + 0x18]
xorps xmm3, xmm3
subss xmm1, dword [esi + 0x18]
movss xmm0, dword [edx + 0x20]
subss xmm0, dword [esi + 0x20]
comiss xmm3, xmm1
jbe 0x4c727e
xorps xmm1, xmm2
comiss xmm3, xmm0
jbe 0x4c7286
xorps xmm0, xmm2
movss xmm2, dword [0x4fcff4]
comiss xmm2, xmm1
jb 0x4c72ac
comiss xmm2, xmm0
jb 0x4c72ac
mov eax, dword [edx + 0x68]
cmp eax, dword [esi + 0x68]
jne 0x4c72a9
mov dword [ebp - 0x34], 1
jmp 0x4c72d4
mov dword [ebp - 0x38], edx
add ecx, 0xf
and ecx, 0xfffffff0
cmp dword [ebp - 4], 0
je 0x4c72c8
mov dword [esi], ecx
add ecx, 0xf
add ecx, dword [esi + 0x54]
and ecx, 0xfffffff0
mov dword [esi + 4], ecx
jmp 0x4c72d1
add ecx, 0xf
add ecx, dword [esi + 0x54]
and ecx, 0xfffffff0
add ecx, dword [esi + 0x58]
test edi, edi
jne 0x4c7302
lea eax, [ecx + 0xf]
push eax
mov dword [ebp - 0x30], eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edx, eax
add esp, 4
mov dword [ebp - 4], edx
test edx, edx
je 0x4c7512
movss xmm5, dword [0x4f7480]
jmp 0x4c6f7b
push dword [ebp + 0x2c]
push 0
push edx
call fcn.004c7c60
mov esi, dword [ebp + 8]
add esp, 0xc
mov edx, dword [ebp + 0x18]
mov ecx, dword [esi + 0x64]
mov eax, dword [edx*4 + 0x53f198]
and ecx, 3
mov eax, dword [eax + ecx*4]
mov dword [edi + 0x15c], eax
mov ecx, dword [esi + 0x64]
cmp ecx, 0xc
jg 0x4c7345
mov eax, dword [edx*4 + 0x53f1b8]
mov eax, dword [eax + ecx*4 - 4]
mov dword [edi + 0x15c], eax
mov edx, dword [ebp + 0x10]
lea ecx, [edi + 0x124]
push ecx
push esi
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [edi + 0x128], eax
call fcn.004c9530
mov eax, dword [edi + 0x128]
inc eax
push eax
push dword [esi + 0x64]
push dword [esi + 0x44]
push dword [esi + 4]
push dword [esi]
push dword [esi + 0x50]
call fcn.004c9a50
mov ecx, 0x1f
mov dword [esi + 0x44], eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x10]
add esp, 0x20
add edi, 0x7c
cmp dword [ebp - 0x34], 0
je 0x4c739b
mov esi, dword [ebp + 8]
jmp 0x4c73ad
push dword [ebp + 0x2c]
mov esi, dword [ebp + 0xc]
push dword [ebp - 0x38]
push esi
call fcn.004c7c60
add esp, 0xc
mov ecx, 0x1f
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x10]
xor edi, edi
mov eax, dword [esi + 0x8c]
mov edx, dword [esi + 0x150]
mov ecx, dword [esi + 0xc8]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x16c]
mov dword [ebp + 0x14], edx
mov edx, dword [esi + 0x90]
mov dword [ebp - 0x3c], ecx
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], edx
test eax, eax
jle 0x4c7435
neg ecx
mov esi, eax
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x14]
add ecx, 0x14
mov dword [ebp + 0x14], esi
nop word [eax + eax]
mov eax, edx
mov dword [ecx - 4], edi
cdq
lea ecx, [ecx + 0x68]
idiv esi
mov esi, dword [ebp + 0xc]
sub dword [ebp + 8], eax
add edi, eax
mov eax, dword [ebp - 0x40]
dec esi
mov edx, dword [ebp + 8]
mov dword [ecx - 0x64], eax
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x38]
sub dword [ebp + 0x14], 1
mov dword [ecx - 0x68], edi
mov dword [ecx - 0x60], eax
mov dword [ebp + 0xc], esi
jne 0x4c7400
mov esi, dword [ebp - 0x10]
cmp dword [esi + 0xe4], 0
mov eax, dword [esi + 0xe0]
mov dword [esi + 0x10c], eax
jne 0x4c7457
mov ecx, dword [ebp - 0x14]
cmp eax, ecx
jle 0x4c7457
mov dword [esi + 0x10c], ecx
cmp dword [ebp + 0x1c], 0
jle 0x4c750a
xor edx, edx
mov dword [ebp + 0xc], edx
nop word [eax + eax]
mov ecx, dword [esi + 0x138]
mov eax, dword [esi + 0x144]
cmp ecx, eax
jle 0x4c7488
sub ecx, dword [esi + 0x134]
jmp 0x4c7490
mov ecx, eax
sub ecx, dword [esi + 0x140]
mov edi, dword [esi + 0x130]
sub edi, dword [esi + 0x124]
mov eax, dword [esi + 0x150]
inc edi
add edi, ecx
imul edi, dword [ebp + 0x18]
cmp dword [ebp - 0x24], 0
mov eax, dword [edx + eax]
mov dword [eax + edi*4], 0x461c3c00
je 0x4c74f9
xor edx, edx
cmp dword [esi + 0x10c], edx
jle 0x4c74f9
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [esi + 0x108]
mov eax, dword [esi + 0x150]
mov esi, dword [ebp + 0xc]
imul ecx, edx
inc edx
add ecx, dword [esi + eax + 0x20]
mov esi, dword [ebp - 0x10]
mov dword [ecx + edi*4], 0x461c3c00
cmp edx, dword [esi + 0x10c]
jl 0x4c74d0
add dword [ebp + 0xc], 0x68
sub dword [ebp + 0x1c], 1
mov edx, dword [ebp + 0xc]
jne 0x4c7470
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret