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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x557c]
xor ebx, ebx
cmp ecx, dword [eax + 0x5564]
jne 0x427cb1
cmp dword [eax + 0x559c], ebx
je 0x428206
or esi, 0xffffffff
add dword [eax + 0x559c], esi
mov edx, dword [edi + 4]
cmp dword [edx + 0x559c], 0x64
jne 0x427ceb
cmp dword [edx + 0x557c], ebx
jle 0x427ceb
call fcn.00413dc0
mov ecx, 5
sub ecx, eax
cmp ecx, 1
jge 0x427ce4
mov ecx, 1
push ecx
push edi
call fcn.00427a30
mov eax, dword [edi + 4]
cmp dword [eax + 0x559c], 5
jne 0x427cfc
call fcn.00415170
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x559c]
cmp ecx, ebx
jne 0x427d50
mov dword [eax + 0x559c], 0x7d0
mov eax, dword [edi + 4]
mov edx, dword [eax + 0x559c]
mov dword [eax + 0x55a0], edx
mov eax, dword [edi + 4]
add dword [eax + 0x557c], 1
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x557c]
sub ecx, dword [eax + 0x5564]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffed5
add ecx, 0x12c
mov dword [edi + 0x58], ecx
jmp 0x427d5c
cmp ecx, 0x12c
jl 0x428206
add dword [edi + 0x58], esi
jne 0x428206
mov eax, dword [eax + 0x557c]
mov ecx, 0x1e
mov edx, 0xa
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ecx
lea ecx, [eax + eax*2]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x7c], edx
lea ecx, [ecx + ecx - 6]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
mov esi, 0xf
add eax, edx
cmp eax, ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0x12
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], 0xd
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
jg 0x427e09
mov dword [esp + 0x10], ebx
jmp 0x427e1a
cmp eax, 5
mov dword [esp + 0x10], 5
jge 0x427e1a
mov dword [esp + 0x10], eax
mov eax, 0x64
mov dword [esp + 0x1c], 1
mov dword [esp + 0xc], ebx
call fcn.005b57b0
mov esi, eax
mov eax, 0x64
call fcn.005b57b0
mov edx, dword [edi + 4]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x557c]
cmp eax, dword [edx + 0x5564]
sete al
test al, al
mov byte [esp + 0x1b], al
je 0x427e64
mov dword [esp + 0x1c], 0x14
jmp 0x427e8c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + ecx*4 + 0x28]
cmp esi, eax
jge 0x427e7a
mov dword [esp + 0x1c], 3
jmp 0x427e8c
mov ecx, dword [esp + ecx*4 + 0x58]
add ecx, eax
cmp esi, ecx
jge 0x427e8c
mov dword [esp + 0x1c], 2
mov esi, dword [esp + 0x10]
mov eax, dword [esp + esi*4 + 0x70]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jge 0x427ead
cmp dword [esp + 0x1c], 3
jge 0x427ead
mov dword [esp + 0xc], 4
jmp 0x427ebf
mov esi, dword [esp + esi*4 + 0x40]
add esi, eax
cmp ecx, esi
jge 0x427ebf
mov dword [esp + 0xc], 2
lea esi, [esp + 0x10]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
call fcn.0041e460
test al, al
je 0x427f88
jmp 0x427ee0
mov edx, dword [esp + 0x10]
cmp dword [edx + 8], 1
jne 0x427f74
mov esi, dword [edx + 0x10]
cmp esi, 8
mov eax, dword [edx + 0x14]
mov ecx, dword [edi + 4]
mov dword [esp + 0x20], eax
ja 0x427f4e
cmp eax, 5
ja 0x427f4e
mov ecx, dword [ecx + 0x8c]
call fcn.004567e0
test al, al
je 0x427f26
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x15c]
call fcn.0043e310
test al, al
je 0x427f4e
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [edi + 4]
push esi
lea ebx, [esp + 0x30]
call fcn.0040e7a0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x427f46
cmp dword [eax + 0x24], 0xb
je 0x427f70
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov dword [esp + ebx*4 + 0x88], edx
mov dword [esp + ebx*8 + 0x178], ebx
mov dword [esp + ebx*8 + 0x17c], 1
add ebx, 1
mov dword [esp + 0x24], ebx
jmp 0x427f74
mov ebx, dword [esp + 0x24]
mov edx, dword [edi + 4]
lea esi, [esp + 0x10]
call fcn.0041e460
test al, al
jne 0x427ee0
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x557c]
push 2
mov ecx, 0xc
push 3
push 1
lea edx, [ecx - 0xb]
call fcn.00515e70
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
add esp, 0xc
cmp dword [esp + 0x1c], ebx
fstp dword [esp + 0x10]
jle 0x427fbd
mov dword [esp + 0x1c], ebx
fld qword [0x6885c0]
xor esi, esi
cmp dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
jle 0x4280d2
fstp st(0)
jmp 0x427fe4
mov ebx, dword [esp + 0x24]
mov edi, ebx
lea ebx, [esp + 0x178]
call fcn.00515750
cmp byte [esp + 0x1b], 0
mov eax, dword [eax]
mov ecx, dword [esp + eax*4 + 0x88]
mov dword [esp + 0x14], ecx
mov dword [esp + eax*8 + 0x17c], 0
je 0x42803b
mov eax, 2
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 4
call fcn.005b57b0
fld dword [0x6886a0]
mov ebx, dword [esp + eax*4 + 0x28]
fstp dword [esp + 0x10]
mov dword [esp + 0xc], ebx
jmp 0x42803f
mov ebx, dword [esp + 0xc]
cmp ebx, 0x19
mov edx, dword [ebp + 8]
mov esi, dword [edx + 4]
mov edi, dword [esi + 0x557c]
jne 0x428054
xor eax, eax
jmp 0x42805c
push ebx
mov eax, esi
call fcn.0040f150
push eax
push ebx
mov ebx, edi
mov eax, esi
call fcn.0040f2c0
mov esi, eax
test esi, esi
je 0x4280c7
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
push ecx
mov ebx, esi
call fcn.00536100
fld dword [esp + 0x10]
fsub qword [0x6885c0]
push ecx
mov dword [esi + 0x68], 0x32
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.005b57c0
fadd qword [0x6885c0]
add esp, 4
fstp dword [esi + 0x34]
call fcn.005334c0
mov eax, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
jl 0x427fe0
fld qword [0x6885c0]
mov edi, dword [ebp + 8]
xor esi, esi
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x557c]
sub eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdiv qword [0x688878]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fldz
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fld1
test ah, 0x41
jp 0x42811d
fstp st(1)
fld dword [0x688758]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fadd st(4)
jmp 0x428165
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x42813a
fstp st(1)
fld dword [0x672464]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fadd st(4)
jmp 0x428165
fxch st(1)
fmul qword [0x688ea0]
fadd qword [0x688560]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x428163
fstp st(0)
fld dword [esp + 0xc]
fadd st(4)
jmp 0x428165
fsub st(4)
call fcn.00643d70
fxch st(2)
fstp dword [esp + 0x14]
mov ebx, eax
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x428195
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [0x688c88]
fstp dword [esp + 0xc]
fadd dword [esp + 0xc]
jmp 0x4281df
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 1
jne 0x4281b4
fstp st(1)
fstp st(0)
fld dword [0x688d70]
fstp dword [esp + 0xc]
fadd dword [esp + 0xc]
jmp 0x4281df
fxch st(1)
fmul qword [0x689428]
fadd qword [0x6885b0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4281dd
fstp st(0)
fadd dword [esp + 0xc]
jmp 0x4281df
fsubrp st(1)
call fcn.00643d70
sub eax, ebx
add eax, 1
call fcn.005b57b0
add eax, ebx
cmp byte [esp + 0x1b], 0
mov dword [edi + 0x58], eax
je 0x428206
mov ecx, dword [edi + 4]
mov dword [ecx + 0x559c], esi
mov dword [edi + 0x58], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4