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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
mov ebx, ecx
cmp byte [ebx + 0x94], 0
push esi
push edi
je 0x45e634
fld dword [ebp + 8]
push ecx
fstp dword [esp]
call fcn.0047aa88
cmp dword [ebx + 0x164], 0x64
jne 0x45e61b
cmp byte [ebx + 0x2e0], 0
je 0x45e10f
fld dword [ebx + 0x2f0]
fld dword [ebx + 0x1b8]
fmul dword [ebp + 8]
fstp dword [esp + 0x18]
fsub dword [esp + 0x18]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebx + 0x2f0]
fldz
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x45e10f
cmp byte [ebx + 0x2eb], 0
jne 0x45e10f
call fcn.004434ea
cmp byte [eax + 0x182], 0
je 0x45e10f
fld dword [0x543e08]
lea edi, [ebx + 0x44]
mov eax, edi
fstp dword [ebx + 0x2f0]
xor esi, esi
call fcn.0041ae5a
test eax, eax
jbe 0x45e10f
call fcn.00458652
xor ecx, ecx
push ecx
push ecx
push ecx
push dword [eax]
call fcn.0045ac6e
cmp eax, 2
jg 0x45e0f8
mov eax, edi
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x45e0d4
jmp 0x45e10f
call fcn.00458652
fld dword [0x543a34]
push ecx
mov ecx, dword [eax]
fstp dword [esp]
push ebx
call fcn.0045afd7
lea eax, [ebx + 0x9c]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xa0]
lea edi, [esp + 0x10]
lea esi, [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.0041d163
test al, al
je 0x45e15b
call fcn.00419ec0
mov eax, dword [eax]
lea edi, [esp + 0x20]
mov byte [eax + 0x77], 0
mov byte [eax + 0x78], 0
call fcn.0041d180
jmp 0x45e126
mov eax, dword [ebx + 0xd8]
xor ecx, ecx
cmp eax, ecx
je 0x45e55d
push ecx
push ecx
push ecx
push eax
call fcn.0045ac6e
mov edi, eax
cmp edi, 2
mov dword [esp + 0x18], edi
jle 0x45e4a3
call fcn.004014e2
add eax, 0x84
test byte [eax + 1], 2
jbe 0x45e3e8
cmp byte [eax + 0x108], 0
jne 0x45e3e8
cmp byte [ebx + 0x2e0], 0
je 0x45e3e8
push edi
mov esi, ebx
call fcn.00487200
fld dword [0x543b7c]
xor esi, esi
fstp dword [ebx + 0x2f0]
fld dword [0x5452c8]
inc esi
push esi
push ecx
mov ecx, dword [ebx + 0xd8]
fstp dword [esp]
call fcn.0045b278
fld dword [0x5443d8]
mov ecx, dword [ebx + 0x2f4]
fst dword [esp + 0x20]
mov eax, edi
fstp dword [esp + 0x24]
imul eax, eax, 5
fld dword [0x543fb4]
fst dword [esp + 0x28]
fstp dword [esp + 0x2c]
push 0
lea eax, [eax + ecx - 5]
mov ecx, dword [ebx + 0xd8]
push eax
lea eax, [esp + 0x28]
push eax
cmp edi, 3
setg al
push eax
push 0
lea eax, [ebx + 0x90]
push eax
push ebx
call fcn.0045ae10
add edi, 0xfffffffe
mov eax, edi
imul eax, edi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x5452c0]
fild dword [esp + 0x18]
fmul qword [0x543cb0]
fadd qword [0x543968]
faddp st(1)
fld qword [0x543978]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45e268
fstp st(0)
jmp 0x45e26a
fstp st(1)
mov edx, dword [0x57b54c]
fld dword [edx + 0x1c8]
fld1
fsubrp st(1)
fmul qword [0x5439a0]
fadd qword [0x543938]
fmulp st(1)
fstp dword [esp + 0x10]
fldz
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 5
jp 0x45e2a6
fld dword [esp + 0x10]
push ecx
fstp dword [esp]
call fcn.00469761
mov ecx, dword [ebx + 0x2f4]
test ecx, ecx
mov eax, dword [ebx + 0xd8]
je 0x45e33a
mov edx, dword [eax + 0x3c]
movzx edx, word [edx + 0x14]
cmp dword [ebx + 0x2f8], edx
jne 0x45e33a
fld dword [esp + 0x2c]
lea esi, [ecx + 1]
fadd qword [0x543b50]
mov dword [ebx + 0x2f4], esi
mov eax, dword [eax + 0x3c]
movzx eax, word [eax + 0x14]
push eax
call fcn.005209b0
push eax
fld dword [esp + 0x30]
fadd dword [esp + 0x28]
fmul qword [0x543938]
call fcn.005209b0
push eax
push esi
mov esi, ebx
call fcn.00487515
mov eax, dword [ebx + 0x2f4]
cmp eax, 5
jne 0x45e314
push eax
jmp 0x45e332
cmp eax, 4
jne 0x45e31c
push eax
jmp 0x45e332
cmp eax, 3
jne 0x45e324
push eax
jmp 0x45e332
cmp eax, 2
jne 0x45e32c
push eax
jmp 0x45e332
cmp eax, 1
jne 0x45e34d
push eax
push ebx
call fcn.004882bd
jmp 0x45e34d
mov dword [ebx + 0x2f4], esi
mov eax, dword [eax + 0x3c]
movzx eax, word [eax + 0x14]
mov dword [ebx + 0x2f8], eax
mov edi, ebx
call fcn.00482522
cmp dword [esp + 0x18], 0xb
jle 0x45e55d
mov eax, dword [0x57b54c]
xor esi, esi
cmp eax, esi
je 0x45e37a
cmp dword [eax + 0x40], 1
jne 0x45e37a
push 2
push 0xd
pop edx
call fcn.0046aecf
call fcn.004e0031
fld1
push 5
pop ecx
cdq
idiv ecx
push esi
push ecx
fstp dword [esp]
cmp edx, esi
jne 0x45e39d
call fcn.0041cab2
push eax
mov eax, str.khufu_verygood.ogg
jmp 0x45e3de
cmp edx, 1
jne 0x45e3af
call fcn.0041cab2
push eax
mov eax, str.khufu_scream.ogg
jmp 0x45e3de
cmp edx, 2
jne 0x45e3c1
call fcn.0041cab2
push eax
mov eax, str.khufuimpressive.ogg
jmp 0x45e3de
cmp edx, 3
jne 0x45e3d3
call fcn.0041cab2
push eax
mov eax, str.khufulaugh.ogg
jmp 0x45e3de
call fcn.0041cab2
push eax
mov eax, str.khufu_amazing.ogg
call fcn.004274ab
jmp 0x45e55d
mov esi, dword [ebx + 0xd8]
mov edi, dword [esi + 0x3c]
test edi, edi
mov dword [esp + 0x18], esi
je 0x45e55d
mov ecx, edi
call fcn.00459639
test al, al
je 0x45e55d
and dword [esp + 0x10], 0
mov byte [esi + 0x69], 1
mov byte [edi + 0x77], 1
mov byte [edi + 0x78], 1
lea edi, [esi + 0xc]
mov eax, edi
call fcn.00412c16
test eax, eax
jbe 0x45e559
mov esi, dword [esp + 0x10]
call fcn.004196a7
mov eax, dword [eax]
cmp dword [eax + 0x3c], 0
je 0x45e48d
call fcn.004196a7
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x3c]
mov ax, word [eax + 0x14]
cmp ax, word [ecx + 0x14]
jne 0x45e48d
call fcn.004196a7
mov eax, dword [eax]
cmp byte [eax + 0x69], 0
jne 0x45e48d
call fcn.004196a7
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
call fcn.00459668
test al, al
je 0x45e48d
call fcn.004196a7
mov ecx, dword [eax]
push 0
push 1
push 1
call fcn.0045ad59
inc dword [esp + 0x10]
mov eax, edi
call fcn.00412c16
cmp dword [esp + 0x10], eax
jb 0x45e42f
jmp 0x45e555
mov esi, dword [ebx + 0xd8]
mov edi, dword [esi + 0x3c]
test edi, edi
mov dword [esp + 0x18], esi
je 0x45e55d
mov ecx, edi
call fcn.00459639
test al, al
je 0x45e55d
and dword [esp + 0x10], 0
mov byte [esi + 0x69], 1
mov byte [edi + 0x77], 0
mov byte [edi + 0x78], 1
lea edi, [esi + 0xc]
mov eax, edi
call fcn.00412c16
test eax, eax
jbe 0x45e559
mov esi, dword [esp + 0x10]
call fcn.004196a7
mov eax, dword [eax]
cmp dword [eax + 0x3c], 0
je 0x45e544
call fcn.004196a7
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x3c]
mov ax, word [eax + 0x14]
cmp ax, word [ecx + 0x14]
jne 0x45e544
call fcn.004196a7
mov eax, dword [eax]
cmp byte [eax + 0x69], 0
jne 0x45e544
call fcn.004196a7
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
call fcn.00459668
test al, al
je 0x45e544
call fcn.004196a7
mov ecx, dword [eax]
push 0
push 1
push 0
call fcn.0045ad59
inc dword [esp + 0x10]
mov eax, edi
call fcn.00412c16
cmp dword [esp + 0x10], eax
jb 0x45e4e6
mov esi, dword [esp + 0x18]
mov byte [esi + 0x69], 0
lea edi, [ebx + 0x44]
mov eax, edi
xor esi, esi
call fcn.0041ae5a
test eax, eax
jbe 0x45e5af
call fcn.00458652
mov eax, dword [eax]
cmp dword [eax + 0x3c], 0
je 0x45e5b8
call fcn.00458652
mov eax, dword [eax]
mov ecx, dword [eax + 0x3c]
call fcn.00459639
test al, al
je 0x45e5b8
call fcn.00458652
xor ecx, ecx
push ecx
push ecx
push ecx
push dword [eax]
call fcn.0045ac6e
cmp eax, 2
jg 0x45e5b8
mov eax, edi
inc esi
call fcn.0041ae5a
cmp esi, eax
jb 0x45e56d
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 0x58]
lea eax, [ebx + 0x54]
call fcn.0041ae5a
cmp dword [ebx + 0x90], eax
jne 0x45e61b
mov ecx, ebx
call fcn.0047e949
lea eax, [ebx + 0x9c]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xa0]
lea edi, [esp + 0x10]
lea esi, [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.0041d163
test al, al
je 0x45e61b
call fcn.00419ec0
mov eax, dword [eax]
lea edi, [esp + 0x20]
mov byte [eax + 0x77], 0
mov byte [eax + 0x78], 0
call fcn.0041d180
jmp 0x45e5e6
push 0x64
call fcn.0047f5e9
test al, al
je 0x45e634
cmp dword [ebx + 0x164], 4
jne 0x45e634
call fcn.0047ec35
pop edi
xor eax, eax
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret 4