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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff78
mov dword [esp + 4], ecx
mov dword [esp], edx
mov ebx, eax
mov dword [esp + 0x40], 0xbfc90fdb
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, 1
jno 0x4c1d38
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fstp dword [esp + 0x38]
wait
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, 1
jno 0x4c1d5c
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fstp dword [esp + 0x3c]
wait
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
faddp st(1)
fsqrt
fstp dword [esp + 0x28]
wait
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, 1
jno 0x4c1da9
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fmul dword [0x4c2400]
fstp dword [esp + 0x10]
wait
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, 1
jno 0x4c1dd3
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fmul dword [0x4c2400]
fstp dword [esp + 0x14]
wait
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, 1
jno 0x4c1dfd
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fmul dword [0x4c2400]
fstp dword [esp + 8]
wait
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, 1
jno 0x4c1e27
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fmul dword [0x4c2400]
fstp dword [esp + 0xc]
wait
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fcomp dword [esp + 0x20]
fnstsw ax
sahf
ja 0x4c1e82
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, 1
jno 0x4c1e6f
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fstp dword [esp + 0x20]
wait
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fcomp dword [esp + 0x24]
fnstsw ax
sahf
ja 0x4c1ec4
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, 1
jno 0x4c1eb1
call fcn.00402d0c
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fstp dword [esp + 0x24]
wait
fld dword [esp + 0x24]
call fcn.0040295c
test eax, eax
jl 0x4c23f3
inc eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], 0
fld dword [esp + 0x20]
call fcn.0040295c
test eax, eax
jl 0x4c23e5
inc eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x48], 0
fild dword [esp + 0x48]
fsub dword [esp + 0x10]
fstp dword [esp + 0x38]
wait
fild dword [esp + 0x44]
fsub dword [esp + 0x14]
fstp dword [esp + 0x3c]
wait
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
faddp st(1)
fsqrt
fstp dword [esp + 0x28]
wait
fld dword [esp + 0x28]
fcomp dword [0x4c2404]
fnstsw ax
sahf
jne 0x4c1f50
xor eax, eax
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x4c1f94
push dword [esp + 0x38]
push dword [esp + 0x40]
call fcn.004c1c90
fild dword [esp + 4]
fdivr dword [esp + 0x28]
fsubp st(1)
fsub dword [esp + 0x40]
fstp dword [esp + 0x2c]
wait
fld dword [esp + 0x2c]
call fcn.00402908
fmul dword [esp + 0x28]
fstp dword [esp + 0x18]
wait
fld dword [esp + 0x2c]
call fcn.00402930
fmul dword [esp + 0x28]
fstp dword [esp + 0x1c]
wait
fld dword [esp + 0x18]
fadd dword [esp + 8]
fstp dword [esp + 0x18]
wait
fld dword [esp + 0x1c]
fadd dword [esp + 0xc]
fstp dword [esp + 0x1c]
wait
fld dword [esp + 0x1c]
call fcn.00402964
mov dword [esp + 0x34], eax
fld dword [esp + 0x18]
call fcn.00402964
mov dword [esp + 0x30], eax
fld dword [esp + 0x1c]
fcomp dword [0x4c2404]
fnstsw ax
sahf
jb 0x4c1ff5
fild dword [esp + 0x34]
fsubr dword [esp + 0x1c]
fstp dword [esp + 0x58]
wait
fld dword [0x4c2408]
fsub dword [esp + 0x58]
fstp dword [esp + 0x54]
wait
jmp 0x4c2013
fild dword [esp + 0x34]
fsubr dword [esp + 0x1c]
fchs
fstp dword [esp + 0x54]
wait
fld dword [0x4c2408]
fsub dword [esp + 0x54]
fstp dword [esp + 0x58]
wait
fld dword [esp + 0x18]
fcomp dword [0x4c2404]
fnstsw ax
sahf
jb 0x4c2040
fild dword [esp + 0x30]
fsubr dword [esp + 0x18]
fstp dword [esp + 0x50]
wait
fld dword [0x4c2408]
fsub dword [esp + 0x50]
fstp dword [esp + 0x4c]
wait
jmp 0x4c205e
fild dword [esp + 0x30]
fsubr dword [esp + 0x18]
fchs
fstp dword [esp + 0x4c]
wait
fld dword [0x4c2408]
fsub dword [esp + 0x4c]
fstp dword [esp + 0x50]
wait
cmp dword [esp + 0x30], 0
jge 0x4c20a2
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [esp + 0x34]
neg eax
jno 0x4c207a
call fcn.00402d0c
pop edx
mov ecx, edx
cdq
idiv ecx
push edx
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, 1
jno 0x4c2092
call fcn.00402d0c
pop edx
sub eax, edx
jno 0x4c209c
call fcn.00402d0c
mov dword [esp + 0x30], eax
jmp 0x4c20cf
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, 1
jno 0x4c20b3
call fcn.00402d0c
cmp eax, dword [esp + 0x30]
jge 0x4c20cf
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [esp + 0x34]
pop edx
mov ecx, edx
cdq
idiv ecx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x34], 0
jge 0x4c2113
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [esp + 0x38]
neg eax
jno 0x4c20eb
call fcn.00402d0c
pop edx
mov ecx, edx
cdq
idiv ecx
push edx
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, 1
jno 0x4c2103
call fcn.00402d0c
pop edx
sub eax, edx
jno 0x4c210d
call fcn.00402d0c
mov dword [esp + 0x34], eax
jmp 0x4c2140
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, 1
jno 0x4c2124
call fcn.00402d0c
cmp eax, dword [esp + 0x34]
jge 0x4c2140
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [esp + 0x38]
pop edx
mov ecx, edx
cdq
idiv ecx
mov dword [esp + 0x34], edx
xor eax, eax
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x70], eax
xor esi, esi
lea eax, [esp + 0x4c]
mov dword [esp + 0x80], eax
xor edi, edi
lea ebp, [esp + 0x54]
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [esp + 0x34]
add edx, edi
jno 0x4c2179
call fcn.00402d0c
cmp eax, edx
jle 0x4c2197
mov edx, dword [esp + 0x34]
add edx, edi
jno 0x4c218a
call fcn.00402d0c
mov eax, dword [ebx]
call fcn.0041b31c
mov dword [esp + 0x74], eax
jmp 0x4c21bf
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
sub edx, dword [esp + 0x34]
jno 0x4c21ab
call fcn.00402d0c
sub edx, edi
jno 0x4c21b4
call fcn.00402d0c
mov eax, dword [ebx]
call fcn.0041b31c
mov dword [esp + 0x74], eax
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [esp + 0x30]
add edx, esi
jno 0x4c21d3
call fcn.00402d0c
cmp eax, edx
jle 0x4c223b
mov eax, dword [esp + 0x30]
add eax, esi
jno 0x4c21e4
call fcn.00402d0c
imul eax, eax, 3
jno 0x4c21ee
call fcn.00402d0c
bound eax, qword [0x4c240c]
mov edx, dword [esp + 0x74]
movzx edx, byte [edx + eax]
mov dword [esp + 0x60], edx
mov edx, eax
add edx, 1
jno 0x4c220c
call fcn.00402d0c
bound edx, qword [0x4c240c]
mov ecx, dword [esp + 0x74]
movzx edx, byte [ecx + edx]
mov dword [esp + 0x64], edx
add eax, 2
jno 0x4c2228
call fcn.00402d0c
bound eax, qword [0x4c240c]
mov edx, dword [esp + 0x74]
movzx eax, byte [edx + eax]
jmp 0x4c22f0
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, dword [esp + 0x30]
jno 0x4c224d
call fcn.00402d0c
sub eax, esi
jno 0x4c2256
call fcn.00402d0c
imul eax, eax, 3
jno 0x4c2260
call fcn.00402d0c
bound eax, qword [0x4c240c]
mov edx, dword [esp + 0x74]
movzx eax, byte [edx + eax]
mov dword [esp + 0x60], eax
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, dword [esp + 0x30]
jno 0x4c2284
call fcn.00402d0c
sub eax, esi
jno 0x4c228d
call fcn.00402d0c
imul eax, eax, 3
jno 0x4c2297
call fcn.00402d0c
add eax, 1
jno 0x4c22a1
call fcn.00402d0c
bound eax, qword [0x4c240c]
mov edx, dword [esp + 0x74]
movzx eax, byte [edx + eax]
mov dword [esp + 0x64], eax
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, dword [esp + 0x30]
jno 0x4c22c5
call fcn.00402d0c
sub eax, esi
jno 0x4c22ce
call fcn.00402d0c
imul eax, eax, 3
jno 0x4c22d8
call fcn.00402d0c
add eax, 2
jno 0x4c22e2
call fcn.00402d0c
bound eax, qword [0x4c240c]
mov edx, dword [esp + 0x74]
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0x80]
fld dword [edx]
fmul dword [ebp]
fstp dword [esp + 0x5c]
wait
fild dword [esp + 0x60]
fmul dword [esp + 0x5c]
fadd dword [esp + 0x68]
fstp dword [esp + 0x68]
wait
fild dword [esp + 0x64]
fmul dword [esp + 0x5c]
fadd dword [esp + 0x6c]
fstp dword [esp + 0x6c]
wait
mov dword [esp + 0x84], eax
fild dword [esp + 0x84]
fmul dword [esp + 0x5c]
fadd dword [esp + 0x70]
fstp dword [esp + 0x70]
wait
inc edi
add ebp, 4
cmp edi, 2
jne 0x4c2165
inc esi
add dword [esp + 0x80], 4
cmp esi, 2
jne 0x4c215f
mov eax, dword [esp]
mov eax, dword [eax]
mov edx, dword [esp + 0x44]
call fcn.0041b31c
mov esi, eax
fld dword [esp + 0x68]
call fcn.0040295c
bound eax, qword [0x4c2414]
imul edi, dword [esp + 0x48], 3
jno 0x4c2388
call fcn.00402d0c
bound edi, qword [0x4c240c]
mov byte [esi + edi], al
fld dword [esp + 0x6c]
call fcn.0040295c
bound eax, qword [0x4c2414]
mov edx, edi
add edx, 1
jno 0x4c23ac
call fcn.00402d0c
bound edx, qword [0x4c240c]
mov byte [esi + edx], al
fld dword [esp + 0x70]
call fcn.0040295c
bound eax, qword [0x4c2414]
add edi, 2
jno 0x4c23ce
call fcn.00402d0c
bound edi, qword [0x4c240c]
mov byte [esi + edi], al
inc dword [esp + 0x48]
dec dword [esp + 0x7c]
jne 0x4c1f00
inc dword [esp + 0x44]
dec dword [esp + 0x78]
jne 0x4c1ee2
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret