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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x154
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 0x78]
mov eax, dword [ecx]
push edi
mov byte [esp + 0x17], 0
call dword [eax + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x78]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x5c], eax
lea eax, [ebp + 8]
push eax
lea eax, [esp + 0xc8]
mov dword [esp + 0x5c], ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00425d35
fld dword [esp + 0x5c]
fadd dword [eax + 8]
lea ecx, [esp + 0x20]
fstp dword [esp + 0x70]
fld dword [esp + 0x58]
fadd dword [eax + 4]
fstp dword [esp + 0x4c]
fld dword [esp + 0x54]
fadd dword [eax]
lea eax, [ebp + 0x14]
push eax
lea eax, [esp + 0xc8]
push eax
fstp dword [esp + 0xd8]
call fcn.00425d35
fld dword [esp + 0x5c]
fadd dword [eax + 8]
fstp dword [esp + 0x74]
fld dword [esp + 0x58]
fadd dword [eax + 4]
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fadd dword [eax]
fstp dword [esp + 0xac]
call fcn.004012af
lea ecx, [eax + 0x4c]
call fcn.0044fbd0
xor edi, edi
test eax, eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], edi
jbe 0x4abd4a
call fcn.004012af
mov eax, dword [eax + 0x50]
lea eax, [eax + edi*4]
mov edi, dword [eax]
cmp edi, dword [esi + 0x78]
je 0x4abd2e
mov eax, dword [edi + 0x5c]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x6c], eax
fld dword [esp + 0x6c]
fsub dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
fld dword [esp + 0x68]
fsub dword [esp + 0x58]
fld dword [esp + 0x64]
fsub dword [esp + 0x54]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x653414]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x4abd2e
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0x9c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0xa0], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x114]
mov dword [esp + 0xa4], ecx
push eax
lea ecx, [esp + 0xa0]
call fcn.004065e2
fld dword [esp + 0x70]
fsub dword [esp + 0x6c]
lea eax, [esp + 0xb8]
fld dword [esp + 0x4c]
push eax
fsub dword [esp + 0x6c]
lea eax, [esp + 0x7c]
fld dword [esp + 0xd4]
push eax
fsub dword [esp + 0x6c]
lea ecx, [esp + 0x11c]
fstp dword [esp + 0xc0]
fstp dword [esp + 0xc4]
fstp dword [esp + 0xc8]
call fcn.00425d35
fld dword [esp + 0x74]
lea eax, [esp + 0xdc]
fsub dword [esp + 0x6c]
push eax
fld dword [esp + 0x54]
lea eax, [esp + 0x94]
fsub dword [esp + 0x6c]
push eax
fld dword [esp + 0xb4]
lea ecx, [esp + 0x11c]
fsub dword [esp + 0x6c]
fstp dword [esp + 0xe4]
fstp dword [esp + 0xe8]
fstp dword [esp + 0xec]
call fcn.00425d35
fld dword [esp + 0x98]
fmul dword [esp + 0x80]
fcomp dword [0x641de0]
fnstsw ax
test ah, 5
jp 0x4abd2e
fld dword [esp + 0x98]
fsub dword [esp + 0x80]
fstp dword [esp + 0x1c]
fld dword [esp + 0x80]
fdiv dword [esp + 0x1c]
fcom dword [0x641de0]
fnstsw ax
test ah, 5
jp 0x4ab8f8
fld st(0)
fchs
fstp st(1)
fld dword [esp + 0x1c]
mov eax, dword [edi]
fld dword [esp + 0x94]
mov ecx, edi
fsub dword [esp + 0x7c]
fld dword [esp + 0x90]
fsub dword [esp + 0x78]
fstp dword [esp + 0x124]
fld st(1)
fmul st(3)
fstp dword [esp + 0x18]
fmul st(2)
fstp dword [esp + 0x1c]
fstp st(0)
fld dword [esp + 0x124]
fmul st(1)
fstp dword [esp + 0x13c]
fstp st(0)
fld dword [esp + 0x18]
fadd dword [esp + 0x80]
fld dword [esp + 0x7c]
fadd dword [esp + 0x1c]
fld dword [esp + 0x13c]
fadd dword [esp + 0x78]
fstp dword [esp + 0x3c]
fstp dword [esp + 0x40]
fstp dword [esp + 0x44]
call dword [eax + 0xc]
mov ebx, eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0xa4]
call fcn.00425d35
fld dword [ebx + 8]
fadd dword [eax + 8]
fstp dword [esp + 0x1c]
fld dword [ebx + 4]
fadd dword [eax + 4]
fstp dword [esp + 0x48]
fld dword [eax]
fadd dword [ebx]
mov ebx, dword [edi + 0x26c]
test ebx, ebx
fstp dword [esp + 0xe8]
je 0x4abd2e
mov ecx, ebx
call fcn.00432116
test al, al
je 0x4abd2e
fld dword [esp + 0x74]
fsub dword [esp + 0x70]
fld dword [esp + 0x50]
fsub dword [esp + 0x4c]
fld dword [esp + 0xac]
fsub dword [esp + 0xd0]
fstp dword [esp + 0xf4]
fstp dword [esp + 0xf8]
fstp dword [esp + 0xfc]
call fcn.00403760
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0xf4]
mov dword [esp + 0x88], eax
call fcn.00406436
fst dword [esp + 0x18]
fmul dword [0x641de0]
fld st(0)
fld dword [esp + 0x18]
fmul dword [esp + 0x88]
fstp dword [esp + 0x18]
fld st(1)
fstp dword [esp + 0x148]
fadd dword [esp + 0x74]
fstp st(1)
fld dword [esp + 0x18]
fadd dword [esp + 0x50]
fld dword [esp + 0x148]
fadd dword [esp + 0xac]
fstp dword [esp + 0x130]
fld st(1)
fsub dword [esp + 0x70]
fstp dword [esp + 0x18]
fsub dword [esp + 0x4c]
fstp dword [esp + 0x60]
fstp st(0)
fld dword [esp + 0x130]
fsub dword [esp + 0xd0]
fstp dword [esp + 0xc4]
call fcn.00403760
fld dword [eax + 0xc]
mov eax, dword [esp + 0xe8]
fld dword [esp + 0x18]
mov edi, dword [edi + 0x16c]
fmul st(1)
mov dword [esp + 0x100], eax
fld dword [esp + 0x60]
mov eax, dword [esp + 0x48]
fmul st(2)
mov dword [esp + 0x104], eax
fld dword [esp + 0xc4]
mov eax, dword [esp + 0x1c]
fmul st(3)
mov dword [esp + 0x108], eax
fstp dword [esp + 0x20]
fstp dword [esp + 0x24]
fst dword [esp + 0x28]
fstp st(0)
fstp st(0)
fldz
fstp dword [esp + 0x2c]
fldz
fstp dword [esp + 0x10c]
mov edi, dword [edi + 4]
mov ecx, edi
call fcn.0043200f
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx]
lea edx, [esp + 0x100]
push edx
lea edx, [esp + 0x24]
push edx
call dword [eax + 0x60]
mov ecx, dword [esp + 0xe8]
mov edi, dword [ebp + 0x24]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
cmp edi, 0xb
mov ecx, esi
jne 0x4abb30
push 0
jmp 0x4abb32
push 1
call fcn.004a44bf
fld dword [ebp + 0x1c]
fsub dword [ebp + 0x10]
mov byte [esp + 0x38], 0
fcomp dword [0x641de0]
fnstsw ax
test ah, 5
jp 0x4abb54
mov byte [esp + 0x38], 1
cmp dword [ebx + 0x48], 7
je 0x4abb80
mov ecx, dword [esp + 0x3c]
push edi
push dword [esp + 0x3c]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
push ebx
mov ecx, esi
call fcn.004a8b7c
mov ecx, dword [ebx + 0x70]
call fcn.004ad81a
cmp edi, 5
push dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
push dword [ebp + 0x20]
jne 0x4abb9c
push 0
jmp 0x4abb9d
push edi
push esi
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.004ab2e9
test al, al
je 0x4abbcb
fldz
push ecx
fstp dword [esp]
push str.made_woosy
jmp 0x4abbf5
call fcn.0048f8ba
fstp dword [esp + 0x60]
call fcn.00403760
fld dword [esp + 0x60]
fcomp dword [eax + 0x144]
fnstsw ax
test ah, 0x41
jne 0x4abbfc
fldz
push ecx
fstp dword [esp]
push str.laugh
mov ecx, esi
call fcn.004a4780
mov ecx, dword [esi + 0x7c]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test eax, eax
jne 0x4abcd9
call fcn.00401ca8
cmp dword [eax + 0x38c], 2
jne 0x4abc26
mov eax, dword [esi + 0x6c]
cmp eax, dword [ebx + 0x6c]
je 0x4abcd9
mov eax, dword [esi + 0x94]
xor edi, edi
cmp eax, edi
jl 0x4abcd9
cmp eax, 3
jle 0x4abc99
cmp eax, 7
jle 0x4abc8b
cmp eax, 0xb
jne 0x4abcd9
push 1
call fcn.00403760
fld dword [eax + 0xf0]
push ecx
mov ecx, dword [esi + 0x78]
fstp dword [esp]
call fcn.00433c86
push edi
call fcn.00403760
fld dword [eax + 0x104]
call fcn.006009e4
push eax
push 1
call fcn.00401ca8
mov ecx, eax
call fcn.0040368a
mov ecx, eax
call fcn.004ceb27
jmp 0x4abcd9
push edi
call fcn.00403760
fld dword [eax + 0x114]
jmp 0x4abca5
push edi
call fcn.00403760
fld dword [eax + 0x10c]
call fcn.006009e4
push eax
push 1
call fcn.00401ca8
mov ecx, eax
call fcn.0040368a
mov ecx, eax
call fcn.004ceb27
push 1
call fcn.00403760
fld dword [eax + 0xec]
push ecx
mov ecx, dword [esi + 0x78]
fstp dword [esp]
call fcn.00433c86
fld dword [0x64685c]
mov eax, dword [esi + 0x78]
fld dword [esp + 0x20]
mov byte [esp + 0x17], 1
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x2c]
mov eax, dword [eax + 0x16c]
mov edi, dword [eax + 4]
mov ecx, edi
fstp st(0)
call fcn.0043200f
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx]
lea edx, [esp + 0x20]
push edx
call dword [eax + 0x5c]
mov edi, dword [esp + 0x84]
inc edi
cmp edi, dword [esp + 0x8c]
mov dword [esp + 0x84], edi
jb 0x4ab758
mov al, byte [esp + 0x17]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20