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

Disassembly:
sub esp, 0x68
fild dword [esp + 0x74]
push ebx
mov ebx, dword [esp + 0x78]
fnstcw word [esp + 0x78]
movzx eax, word [esp + 0x78]
fmul qword [0x6c0b18]
or eax, 0xc00
mov dword [esp + 0x10], eax
push ebp
fadd qword [0x6c0c58]
mov ebp, dword [esp + 0x8c]
fldcw word [esp + 0x14]
push esi
push edi
xor edi, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
fistp qword [esp + 0x48]
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x48]
cmp esi, 0x3fffffff
mov dword [esp + 0x24], edi
fldcw word [esp + 0x84]
ja 0x4c409e
cmp esi, edi
je 0x4c409e
lea eax, [edi + 1]
cmp esi, eax
jb 0x4c4056
lea esp, [esp]
add eax, eax
cmp eax, esi
jbe 0x4c4050
fldz
fstp dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c407d
mov edx, 1
shl edx, cl
jmp 0x4c407f
xor edx, edx
cmp edx, eax
je 0x4c4097
add eax, eax
push eax
push edi
call fcn.0045d790
add esp, 8
cmp eax, edi
mov dword [esp + 0x28], eax
je 0x4c409e
lea ecx, [esi + esi]
mov dword [esp + 0x2c], ecx
cmp ebx, 0x3fffffff
jbe 0x4c40c6
mov eax, dword [ebp]
cmp eax, edi
je 0x4c416a
push eax
call fcn.0045da90
add esp, 4
and dword [ebp + 4], 1
mov dword [ebp], edi
jmp 0x4c416a
mov eax, dword [ebp + 4]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp ebx, eax
je 0x4c416a
test ecx, ecx
je 0x4c40f1
mov eax, dword [ebp]
lea edx, [ebx + ebx]
push edx
push eax
call fcn.0045d790
add esp, 8
mov dword [ebp], eax
jmp 0x4c415c
mov edi, 1
cmp ebx, edi
jb 0x4c4106
lea ebx, [ebx]
add edi, edi
cmp edi, ebx
jbe 0x4c4100
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
jge 0x4c411a
fadd dword [0x6c0a38]
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c4139
mov edx, 1
shl edx, cl
jmp 0x4c413b
xor edx, edx
cmp edx, eax
jae 0x4c4141
add edx, edx
cmp edx, edi
je 0x4c415c
mov eax, dword [ebp]
lea edx, [edi + edi]
push edx
push eax
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [ebp], eax
je 0x4c416a
mov ecx, dword [ebp + 4]
lea edx, [ebx + ebx]
and ecx, 1
or ecx, edx
mov dword [ebp + 4], ecx
cmp esi, 0x3fffffff
ja 0x4c41e1
test esi, esi
je 0x4c41e1
mov edx, 1
cmp esi, edx
jb 0x4c4186
nop
add edx, edx
cmp edx, esi
jbe 0x4c4180
fldz
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c41a7
mov eax, 1
shl eax, cl
jmp 0x4c41a9
xor eax, eax
cmp eax, edx
je 0x4c41da
xor eax, eax
test edx, edx
je 0x4c41d2
xor ecx, ecx
mov eax, edx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00608276
add esp, 4
test eax, eax
je 0x4c41e1
test eax, eax
mov dword [esp + 0x20], eax
je 0x4c41e1
lea eax, [esi + esi]
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
push edi
mov dword [esp + 0x88], 0
call fcn.004c3e60
mov ecx, dword [0x6fa124]
mov edx, eax
mov eax, dword [ebp]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [ecx + 0x1c]
lea edi, [ebp + edi*4 + 0x7c]
lea ebp, [esp + 0x84]
push ebp
mov ebp, dword [esp + 0x24]
push ebp
push eax
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x98]
push eax
mov eax, dword [esp + 0x94]
push esi
push ebx
push eax
push edi
push edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edi
call ecx
test eax, eax
je 0x4c4275
mov eax, ebp
test eax, eax
je 0x4c4257
push eax
call fcn.00607c35
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4c4268
push eax
call fcn.0045da90
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret 0x1c
mov edx, dword [esp + 0x84]
cmp edx, 0x3fffffff
mov ebx, edx
jbe 0x4c42ce
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4c42ab
push eax
call fcn.0045da90
add esp, 4
and dword [esp + 0x2c], 1
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x84]
cmp edx, 0x3fffffff
mov ebp, edx
jbe 0x4c4385
cmp dword [esp + 0x20], 0
je 0x4c44fb
mov ecx, dword [esp + 0x20]
push ecx
jmp 0x4c44e4
mov edi, dword [esp + 0x2c]
mov esi, edi
shr edi, 1
and esi, 1
cmp edx, edi
je 0x4c42ab
test esi, esi
je 0x4c4301
lea ecx, [edx + edx]
mov edx, dword [esp + 0x28]
push ecx
push edx
call fcn.0045d790
mov dword [esp + 0x30], eax
lea eax, [ebx + ebx]
add esp, 8
or eax, esi
mov dword [esp + 0x2c], eax
jmp 0x4c42a4
mov esi, 1
cmp edx, esi
jb 0x4c4316
lea ebx, [ebx]
add esi, esi
cmp esi, edx
jbe 0x4c4310
mov eax, edi
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x4c432a
fadd dword [0x6c0a38]
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c4349
mov eax, 1
shl eax, cl
jmp 0x4c434b
xor eax, eax
cmp eax, edi
jae 0x4c4351
add eax, eax
cmp eax, esi
je 0x4c4379
mov edx, dword [esp + 0x28]
lea ecx, [esi + esi]
push ecx
push edx
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [esp + 0x28], eax
je 0x4c42a4
mov edx, dword [esp + 0x84]
lea eax, [ebx + ebx]
mov dword [esp + 0x2c], eax
jmp 0x4c42ab
mov edi, dword [esp + 0x24]
mov eax, edi
shr edi, 1
and eax, 1
cmp edx, edi
je 0x4c44fb
test eax, eax
je 0x4c4417
xor esi, esi
test edx, edx
je 0x4c43f6
xor ecx, ecx
mov eax, edx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00608276
mov esi, eax
add esp, 4
test esi, esi
je 0x4c44f4
cmp edi, ebp
mov edx, ebp
ja 0x4c43cf
mov edx, edi
test edx, edx
jbe 0x4c43ef
mov ecx, dword [esp + 0x20]
mov eax, esi
sub ecx, esi
jmp 0x4c43e0
mov di, word [ecx + eax]
mov word [eax], di
add eax, 2
sub edx, 1
jne 0x4c43e0
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4c440e
push eax
call fcn.00607c35
mov edx, dword [esp + 0x88]
add esp, 4
mov dword [esp + 0x20], esi
jmp 0x4c44fb
mov esi, 1
cmp edx, esi
jb 0x4c4426
add esi, esi
cmp esi, edx
jbe 0x4c4420
mov eax, edi
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x4c443a
fadd dword [0x6c0a38]
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c4459
mov eax, 1
shl eax, cl
jmp 0x4c445b
xor eax, eax
cmp eax, edi
jae 0x4c4461
add eax, eax
cmp eax, esi
je 0x4c44fb
xor ebx, ebx
test esi, esi
je 0x4c44ba
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00608276
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4c44d8
cmp edi, esi
ja 0x4c4496
mov esi, edi
test esi, esi
jbe 0x4c44b3
mov ecx, dword [esp + 0x20]
mov eax, ebx
sub ecx, ebx
mov edx, esi
mov si, word [ecx + eax]
mov word [eax], si
add eax, 2
sub edx, 1
jne 0x4c44a4
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4c44d2
push eax
call fcn.00607c35
mov edx, dword [esp + 0x88]
add esp, 4
mov dword [esp + 0x20], ebx
jmp 0x4c44fb
cmp dword [esp + 0x20], 0
je 0x4c44f4
mov eax, dword [esp + 0x20]
push eax
call fcn.00607c35
mov dword [esp + 0x24], 0
add esp, 4
mov edx, dword [esp + 0x84]
xor edi, edi
xor ebx, ebx
cmp edx, 0x1fffffff
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], ebx
ja 0x4c456c
test edx, edx
je 0x4c45e0
lea eax, [edi + 1]
cmp edx, eax
jb 0x4c4526
mov edi, edi
add eax, eax
cmp eax, edx
jbe 0x4c4520
fldz
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c4547
mov esi, 1
shl esi, cl
jmp 0x4c4549
xor esi, esi
cmp esi, eax
je 0x4c456c
lea ecx, [eax*4]
push ecx
push 0
call fcn.0045d790
mov edx, dword [esp + 0x8c]
mov edi, eax
add esp, 8
mov dword [esp + 0x48], edi
cmp edx, 0xfffffff
ja 0x4c45e0
test edx, edx
je 0x4c45e0
mov esi, 1
cmp edx, esi
jb 0x4c4587
add esi, esi
cmp esi, edx
jbe 0x4c4581
fldz
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4c45a8
mov eax, 1
shl eax, cl
jmp 0x4c45aa
xor eax, eax
cmp eax, esi
je 0x4c45e0
xor eax, eax
test esi, esi
je 0x4c45da
xor ecx, ecx
mov eax, esi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00608276
mov edx, dword [esp + 0x88]
add esp, 4
test eax, eax
je 0x4c45e0
mov ebx, eax
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0x54]
push eax
mov eax, dword [esp + 0x24]
push ebx
push edi
push ecx
mov ecx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [0x6fa124]
push edx
mov edx, dword [ecx + 0x24]
push eax
call edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
test ecx, ecx
je 0x4c4626
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov byte [esp + 0x18], al
jmp 0x4c462b
mov byte [esp + 0x18], 0
mov eax, dword [esp + 0x2c]
xor edi, edi
shr eax, 1
mov dword [esp + 0x1c], eax
je 0x4c483f
lea ecx, [ecx]
mov ecx, dword [esp + 0x88]
movzx edx, word [ecx]
mov ecx, dword [esp + 0x94]
shr dx, 0xa
and edx, 0xffffff01
push edx
call fcn.004c3d00
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
movzx ebp, word [ecx + eax*2]
mov esi, ecx
sub esi, dword [edx + 0x28]
add esp, 4
sar esi, 1
add esi, eax
mov eax, dword [esp + 0x28]
movzx edx, word [eax + edi*2]
test dx, dx
je 0x4c4753
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push ecx
push eax
mov ecx, edi
mov eax, ebp
call fcn.004c3fb0
add esp, 8
test al, al
jne 0x4c4753
fild dword [ebx + edi*8]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + edi*4]
mov ecx, dword [esp + 0x90]
fstp dword [esp + 0x38]
mov ebp, dword [esp + 0x38]
fild dword [ebx + edi*8 + 4]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 4]
test al, 1
fstp dword [esp + 0x3c]
mov ebx, dword [esp + 0x3c]
mov word [esp + 0x70], dx
mov word [esp + 0x72], si
mov byte [esp + 0x74], 0
jne 0x4c482e
shr eax, 1
lea edx, [eax - 1]
test eax, edx
mov esi, ecx
jne 0x4c470a
push esi
call fcn.004c61f0
test eax, eax
je 0x4c482e
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edx, dword [esp + 0x68]
shr eax, 1
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x8c]
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov edx, dword [esp + 0x70]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov eax, dword [esi + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [esi + 4], edx
jmp 0x4c482e
cmp bp, 0xfdd0
mov dword [esp + 0x14], 0
je 0x4c4784
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
push 0
push ebp
call eax
test eax, eax
mov dword [esp + 0x14], eax
jne 0x4c4784
mov dword [esp + 0x14], 0x14
mov eax, dword [esp + 0x30]
fldz
mov edx, dword [esp + 0x90]
fst dword [esp + 0x40]
mov ebx, dword [esp + 0x40]
fstp dword [esp + 0x44]
xor ecx, ecx
cmp bp, 0x20
setne cl
mov dword [eax + edi*8 + 4], 0
mov dword [eax + edi*8], 0
mov eax, dword [edx + 4]
test al, 1
mov word [esp + 0x70], bp
mov word [esp + 0x72], si
mov dword [esp + 0x6c], ecx
mov byte [esp + 0x74], 1
jne 0x4c482e
shr eax, 1
lea ecx, [eax - 1]
test eax, ecx
jne 0x4c47e2
push edx
call fcn.004c61f0
test eax, eax
je 0x4c482e
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
shr eax, 1
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x44]
mov dword [eax], ebx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x70]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 0x14], edx
mov eax, dword [ecx + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [ecx + 4], edx
mov ebx, dword [esp + 0x30]
add edi, 1
cmp edi, dword [esp + 0x1c]
jb 0x4c4640
test ebx, ebx
je 0x4c484c
push ebx
call fcn.00607c35
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4c485d
push eax
call fcn.0045da90
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4c486e
push eax
call fcn.00607c35
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4c487f
push eax
call fcn.0045da90
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x68
ret 0x1c