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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x61cdb0
push eax
mov dword fs:[0], esp
sub esp, 0x30
push esi
mov esi, ecx
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
lea edx, [esp + 0x18]
push edx
push 0
push 0
call eax
push 0x12
mov ecx, esi
call fcn.004e2a60
test eax, eax
jne 0x4cf5b0
xor al, al
pop esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov edx, dword [esi]
mov eax, dword [edx + 0x20]
push ebx
mov ecx, esi
call eax
mov ecx, dword [esi + 0x80]
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
mov ebx, eax
lea eax, [esp + 0x10]
push eax
push 0
push 0
call edx
test eax, eax
jl 0x4cf626
mov eax, dword [esp + 0x10]
cmp eax, 0x18
jl 0x4cf626
lea ecx, [esp + 0xb]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.0044ecd0
mov ecx, dword [esi + 0x80]
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x24]
push eax
push 0
push 0
mov dword [esp + 0x50], 0
call edx
test eax, eax
mov eax, dword [esp + 0x20]
jge 0x4cf639
test eax, eax
je 0x4cf626
push eax
call fcn.005f7a6f
add esp, 4
pop ebx
xor al, al
pop esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov cl, byte [eax + 3]
mov dl, byte [eax + 0x12]
mov byte [esp + 0xb], cl
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx]
push ebp
mov byte [esp + 0xe], dl
mov edx, dword [eax + 0x18]
push edi
call edx
mov ecx, dword [esi + 0x80]
mov edi, eax
mov eax, dword [ecx]
mov ebp, edx
mov edx, dword [eax + 0x1c]
call edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], 0
jmp 0x4cf680
cmp ebp, dword [esp + 0x34]
jg 0x4cf72b
jl 0x4cf696
cmp edi, dword [esp + 0x30]
jae 0x4cf72b
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
lea edx, [esp + 0x20]
push edx
lea edx, [esp + 0x20]
push edx
push 0
push 0
push 1
push ebp
push edi
call eax
test eax, eax
jne 0x4cf72b
mov eax, dword [esp + 0x1c]
cmp eax, 0x1d4c0
jl 0x4cf72b
lea ecx, [esp + 0x13]
push ecx
push eax
lea ecx, [esp + 0x40]
call fcn.0044ecd0
mov ecx, dword [esi + 0x80]
mov edx, dword [ecx]
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x44]
push eax
push 1
push ebp
push edi
mov byte [esp + 0x64], 1
call edx
test eax, eax
mov eax, dword [esp + 0x38]
jne 0x4cf719
mov cl, byte [eax + 0x8e87]
mov dl, byte [eax + 0x2fd6]
mov byte [esp + 0x13], cl
mov byte [esp + 0x12], dl
test eax, eax
mov byte [esp + 0x48], 0
je 0x4cf72b
push eax
call fcn.005f7a6f
add esp, 4
mov al, byte [esp + 0x12]
movzx ecx, byte [esp + 0x13]
shr al, 5
and al, 1
and ecx, 0x38
je 0x4cf79a
cmp ecx, 8
je 0x4cf785
cmp ecx, 0x10
je 0x4cf770
mov ecx, dword [esp + 0x14]
mov eax, 1
shl eax, cl
cdq
add edi, eax
adc ebp, edx
mov eax, ecx
add eax, 1
cmp eax, 5
mov dword [esp + 0x14], eax
jl 0x4cf680
mov ebp, dword [esp + 0x14]
jmp 0x4cf7b7
neg al
mov ebp, 0x7d00
sbb eax, eax
and eax, 0x84b
add eax, 0x29b5
jmp 0x4cf7ad
neg al
mov ebp, 0xac44
sbb eax, eax
and eax, 0xb6d
add eax, 0x397b
jmp 0x4cf7ad
neg al
mov ebp, 0xbb80
sbb eax, eax
and eax, 0xc70
add eax, 0x3e90
mov dword [esp + 0x14], ebp
mov dword [esi + 0x8c], eax
cmp dword [esi + 0x7c], 0x23280
lea edi, [esi + 0x78]
je 0x4cf807
mov eax, dword [edi]
test eax, eax
je 0x4cf7df
push eax
call fcn.005f7a6f
add esp, 4
mov dword [edi], 0
mov dword [edi + 4], 0
push 0x23280
call fcn.005f79ac
add esp, 4
test eax, eax
jne 0x4cf7fe
push 1
push 0x23280
mov ecx, edi
call fcn.0051d347
mov dword [edi], eax
mov dword [edi + 4], 0x23280
mov dword [ebx + 4], ebp
lea eax, [ebp*4]
lea edi, [esi + 0xb4]
mov ebp, 0x7a8
mov word [ebx], 1
mov word [ebx + 2], 2
mov dword [ebx + 8], eax
mov word [ebx + 0xc], 4
mov word [ebx + 0xe], 0x10
mov word [ebx + 0x10], 0
cmp dword [edi + 4], ebp
je 0x4cf87d
mov eax, dword [edi]
test eax, eax
je 0x4cf85d
push eax
call fcn.005f7a6f
add esp, 4
mov dword [edi], 0
mov dword [edi + 4], 0
push 0x1ea0
call fcn.005f79ac
add esp, 4
test eax, eax
jne 0x4cf878
push 4
push ebp
mov ecx, edi
call fcn.0051d347
mov dword [edi], eax
mov dword [edi + 4], ebp
mov ecx, dword [esi + 0xb8]
mov edx, dword [edi]
add ecx, ecx
add ecx, ecx
push ecx
push 0
push edx
call fcn.005f7e70
mov ecx, dword [esi + 0x80]
mov byte [esi + 0xb0], 0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
add esp, 0xc
lea edi, [esi + 0x20]
push edi
call edx
test eax, eax
je 0x4cf8d7
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4cf8c2
push eax
call fcn.005f7a6f
add esp, 4
pop edi
pop ebp
pop ebx
xor al, al
pop esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov eax, dword [esi + 0x34]
fild dword [esi + 0x34]
mov dword [edi], 0x73647561
xor edi, edi
test eax, eax
mov dword [esi + 0x24], edi
jge 0x4cf8f2
fadd qword [0x628518]
mov ecx, dword [esi + 0x38]
fild dword [esi + 0x38]
test ecx, ecx
jge 0x4cf902
fadd qword [0x628518]
fdivp st(1)
sub esp, 8
fimul dword [esp + 0x1c]
fstp qword [esp]
call fcn.00519e42
mov dword [esi + 0x3c], eax
mov edx, dword [ebx + 8]
mov dword [esi + 0x38], edx
movzx eax, word [ebx + 0xc]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x34], eax
mov eax, dword [edx]
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], edi
mov dword [esi + 0x4c], 0xffffffff
movzx ecx, word [ebx + 0xc]
mov dword [esi + 0x50], ecx
lea ecx, [esi + 0x60]
add esp, 8
mov word [esi + 0x54], di
mov word [esi + 0x56], di
mov word [esi + 0x58], di
mov word [esi + 0x5a], di
call eax
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x4cf965
push eax
call fcn.005f7a6f
add esp, 4
mov ecx, dword [esp + 0x40]
pop edi
pop ebp
pop ebx
mov al, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x3c
ret