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

Disassembly:
sub esp, 0x9c
push esi
mov esi, ecx
mov dword [esp + 0x18], esi
mov eax, dword [esi + 0x44c]
test eax, eax
je 0x4c7dbb
mov eax, dword [esp + 0xa4]
cmp eax, 1
jge 0x4c779c
mov eax, 1
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x14], eax
cmp ecx, 1
mov dword [esp + 0xc], 1
jl 0x4c77b8
mov dword [esp + 0xc], ecx
fild dword [esi + 0x18]
push ebx
mov ebx, dword [esi + 0x444]
imul ebx, eax
fidiv dword [esp + 0x18]
push ebp
push edi
test bl, 3
mov dword [esp + 0x3c], ebx
fild dword [esi + 0x1c]
fidiv dword [esp + 0x18]
fstp dword [esp + 0x28]
je 0x4c77e9
inc ebx
test bl, 3
jne 0x4c77df
mov dword [esp + 0x3c], ebx
fmul dword [0x549e10]
call fcn.004d4508
fld dword [esp + 0x28]
fmul dword [0x549e10]
mov dword [esp + 0x50], eax
call fcn.004d4508
mov edi, ebx
mov dword [esp + 0x58], eax
imul edi, dword [esp + 0x18]
push edi
mov dword [esp + 0x68], edi
call fcn.004d5867
mov ebp, eax
mov eax, dword [esi + 0x44c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
xor edx, edx
add esp, 4
cmp eax, edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edx
jle 0x4c7d89
mov ecx, dword [esp + 0x20]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
jle 0x4c7d6e
shl edx, 8
imul edx, dword [esp + 0x58]
sar edx, 8
mov ecx, edx
sar ecx, 8
mov edi, ecx
mov dword [esp + 0x68], ecx
shl edi, 8
sub edx, edi
mov edi, dword [esi + 0x444]
mov dword [esp + 0x60], edx
jmp 0x4c7886
mov ecx, dword [esp + 0x68]
shl eax, 8
imul eax, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
add edx, ebx
mov esi, dword [esi + 0x440]
sar eax, 8
mov dword [esp + 0x54], edx
mov edx, eax
sar edx, 8
mov ebx, edx
shl ebx, 8
sub eax, ebx
mov ebx, edi
mov dword [esp + 0x44], eax
mov eax, esi
imul eax, ecx
imul ebx, edx
add eax, ebx
mov ebx, eax
sub ebx, edi
mov ebp, ebx
sub ebp, esi
cmp ecx, 1
mov dword [esp + 0x6c], ebp
jl 0x4c78d7
cmp edx, 1
jge 0x4c78db
mov dword [esp + 0x6c], eax
mov ebp, eax
sub ebp, esi
cmp ecx, 1
mov dword [esp + 0x70], ebp
jge 0x4c78ec
mov dword [esp + 0x70], eax
mov ebp, edi
sub ebp, esi
add ebp, eax
cmp ecx, 1
mov dword [esp + 0x74], ebp
jl 0x4c7907
mov ebp, dword [esp + 0x24]
mov ebp, dword [ebp + 0x18]
dec ebp
cmp edx, ebp
jl 0x4c790b
mov dword [esp + 0x74], eax
lea ebp, [edi + edi]
sub ebp, esi
add ebp, eax
cmp ecx, 1
mov dword [esp + 0x78], ebp
jl 0x4c7929
mov ebp, dword [esp + 0x24]
mov ebp, dword [ebp + 0x18]
sub ebp, 2
cmp edx, ebp
jl 0x4c792d
mov dword [esp + 0x78], eax
cmp edx, 1
mov dword [esp + 0x7c], ebx
jge 0x4c793a
mov dword [esp + 0x7c], eax
lea ebx, [edi + eax]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx + 0x18]
lea ebp, [ebx - 1]
cmp edx, ebp
mov dword [esp + 0x10], ebp
jl 0x4c7964
mov dword [esp + 0x84], eax
add ebx, 0xfffffffe
lea ebp, [eax + edi*2]
cmp edx, ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x14], ebx
jl 0x4c7980
mov dword [esp + 0x88], eax
mov ebx, esi
sub ebx, edi
add ebx, eax
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx + 0x1c]
mov dword [esp + 0x2c], ebx
dec ebx
cmp ecx, ebx
jge 0x4c79a2
cmp edx, 1
jge 0x4c79a9
mov dword [esp + 0x8c], eax
lea ebp, [esi + eax]
cmp ecx, ebx
mov dword [esp + 0x90], ebp
jl 0x4c79be
mov dword [esp + 0x90], eax
lea ebp, [esi + edi]
mov dword [esp + 0x1c], ebp
add ebp, eax
cmp ecx, ebx
mov dword [esp + 0x94], ebp
jge 0x4c79d8
cmp edx, dword [esp + 0x10]
jl 0x4c79df
mov dword [esp + 0x94], eax
lea ebp, [esi + edi*2]
add ebp, eax
cmp ecx, ebx
mov dword [esp + 0x98], ebp
jge 0x4c79f5
cmp edx, dword [esp + 0x14]
jl 0x4c79fc
mov dword [esp + 0x98], eax
add esi, esi
mov ebx, esi
sub ebx, edi
add ebx, eax
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x2c]
add ebx, 0xfffffffe
cmp ecx, ebx
jge 0x4c7a1b
cmp edx, 1
jge 0x4c7a22
mov dword [esp + 0x9c], eax
lea ebp, [esi + eax]
cmp ecx, ebx
mov dword [esp + 0xa0], ebp
jl 0x4c7a37
mov dword [esp + 0xa0], eax
add esi, edi
add esi, eax
cmp ecx, ebx
mov dword [esp + 0xa4], esi
jge 0x4c7a4c
cmp edx, dword [esp + 0x10]
jl 0x4c7a53
mov dword [esp + 0xa4], eax
mov esi, dword [esp + 0x1c]
cmp ecx, ebx
lea esi, [eax + esi*2]
mov dword [esp + 0xa8], esi
jge 0x4c7a6b
cmp edx, dword [esp + 0x14]
jl 0x4c7a72
mov dword [esp + 0xa8], eax
xor eax, eax
mov ecx, 0xffffff00
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ecx
lea ebx, [esp + 0x6c]
mov eax, dword [esp + 0x60]
sub ecx, eax
xor eax, eax
lea edx, [ecx + 0x200]
lea edi, [ecx - 0x100]
test edx, edx
lea esi, [ecx + 0x100]
jle 0x4c7ab9
mov eax, edx
imul eax, edx
sar eax, 8
imul eax, edx
sar eax, 8
xor edx, edx
test esi, esi
jle 0x4c7acd
mov edx, esi
imul edx, esi
sar edx, 8
imul edx, esi
sar edx, 8
xor esi, esi
test ecx, ecx
jle 0x4c7ae1
mov esi, ecx
imul esi, ecx
sar esi, 8
imul esi, ecx
sar esi, 8
xor ecx, ecx
test edi, edi
jle 0x4c7af5
mov ecx, edi
imul ecx, edi
sar ecx, 8
imul ecx, edi
sar ecx, 8
shl ecx, 0xa
sar ecx, 8
shl edx, 0xa
sub eax, ecx
lea ecx, [esi + esi*2]
sar edx, 8
sub eax, edx
mov ebp, 0xffffff00
shl ecx, 9
shl eax, 8
and cl, 0
add eax, ecx
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x44]
mov ecx, ebp
sub ecx, eax
xor eax, eax
lea edx, [ecx + 0x200]
lea edi, [ecx - 0x100]
test edx, edx
lea esi, [ecx + 0x100]
jle 0x4c7b5d
mov eax, edx
imul eax, edx
sar eax, 8
imul eax, edx
sar eax, 8
xor edx, edx
test esi, esi
jle 0x4c7b71
mov edx, esi
imul edx, esi
sar edx, 8
imul edx, esi
sar edx, 8
xor esi, esi
test ecx, ecx
jle 0x4c7b85
mov esi, ecx
imul esi, ecx
sar esi, 8
imul esi, ecx
sar esi, 8
xor ecx, ecx
test edi, edi
jle 0x4c7b99
mov ecx, edi
imul ecx, edi
sar ecx, 8
imul ecx, edi
sar ecx, 8
shl ecx, 0xa
sar ecx, 8
shl edx, 0xa
sub eax, ecx
lea ecx, [esi + esi*2]
sar edx, 8
sub eax, edx
add ebp, 0x100
shl ecx, 9
shl eax, 8
and cl, 0
add ebx, 4
add eax, ecx
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [ebx - 4]
mov eax, edx
sar eax, 8
mov edx, eax
shr edx, 0x1f
add eax, edx
mov edx, dword [esp + 0x4c]
imul eax, dword [esp + 0x48]
shr ecx, 2
sar eax, 8
mov edi, dword [edx + ecx*4]
lea esi, [edx + ecx*4]
mov ecx, edi
xor edx, edx
shr ecx, 0x10
mov dh, cl
mov ecx, dword [esp + 0x1c]
imul edx, eax
sar edx, 8
add ecx, edx
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, edi
shr ecx, 8
mov dh, cl
mov ecx, dword [esp + 0x14]
imul edx, eax
sar edx, 8
add ecx, edx
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov ch, byte [esi]
mov esi, dword [esp + 0x10]
imul ecx, eax
sar ecx, 8
add esi, ecx
cmp ebp, 0x300
mov dword [esp + 0x10], esi
jl 0x4c7b2f
mov ecx, dword [esp + 0x2c]
add ecx, 0x100
cmp ecx, 0x300
mov dword [esp + 0x2c], ecx
jl 0x4c7a8d
mov eax, dword [esp + 0x1c]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*4]
shl eax, 1
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0xff0000
jg 0x4c7c8c
test eax, 0xffff0000
jge 0x4c7c84
xor bl, bl
jmp 0x4c7c96
cmp ecx, 0xff0000
jle 0x4c7c91
or bl, 0xff
jmp 0x4c7c96
mov ebx, eax
sar ebx, 0x10
mov eax, dword [esp + 0x14]
mov ecx, eax
shl ecx, 5
add ecx, eax
lea eax, [eax + ecx*4]
shl eax, 1
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0xff0000
jg 0x4c7cc9
test eax, 0xffff0000
jge 0x4c7cc1
xor al, al
jmp 0x4c7cd0
cmp ecx, 0xff0000
jle 0x4c7ccd
or al, 0xff
jmp 0x4c7cd0
sar eax, 0x10
mov ecx, dword [esp + 0x10]
mov edx, ecx
shl edx, 5
add edx, ecx
lea ecx, [ecx + edx*4]
shl ecx, 1
mov edx, ecx
and edx, 0xffff0000
cmp edx, 0xff0000
jg 0x4c7d07
test ecx, 0xffff0000
jge 0x4c7cff
mov byte [esp + 0x38], 0
jmp 0x4c7d15
cmp edx, 0xff0000
jle 0x4c7d0e
mov byte [esp + 0x38], 0xff
jmp 0x4c7d15
sar ecx, 0x10
mov byte [esp + 0x38], cl
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x5c]
xor ecx, ecx
mov esi, dword [esp + 0x24]
mov ch, bl
mov ebx, dword [esp + 0x34]
mov cl, al
mov eax, dword [esp + 0x54]
shl ecx, 8
and edx, 0xff
shr eax, 2
or ecx, edx
mov dword [ebp + eax*4], ecx
mov edi, dword [esi + 0x444]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
add ebx, edi
inc eax
cmp eax, ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], eax
jl 0x4c7882
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
add eax, ebx
inc edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
cmp edx, eax
mov dword [esp + 0x28], edx
jl 0x4c7845
mov edx, dword [esi + 0x44c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push edx
mov dword [esi + 0x440], ebx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
call fcn.004d577e
add esp, 4
mov dword [esi + 0x448], edi
mov dword [esi + 0x44c], ebp
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x9c
ret 8