Function at 0x409fa3
Capabilities:
Terminate process

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 8]
add eax, 0xfffffff5
mov esi, ecx
cmp eax, 0x2c
ja case.0x409d4c.14
jmp dword [eax*4 + 0x40a2d8]
mov ebp, 1
mov dword [esi + 0x40], ebp
xor ebx, ebx
mov dword [0x443ac4], ebx
mov dword [0x443300], ebp
lea eax, [edi + 0x18]
mov dword [esi + 0x64], ebp
fld qword [edi + 0x10]
push eax
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00408ea0
mov ecx, dword [esi + 8]
push ebp
call fcn.004071a0
mov ecx, esi
call fcn.00409370
pop edi
mov dword [esi + 0x5c], ebp
mov dword [esi + 0x64], ebx
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov eax, 2
mov dword [esi + 0x40], eax
mov ebp, 1
xor ebx, ebx
mov dword [0x443ac4], ebx
mov dword [0x443300], eax
mov dword [0x411160], ebp
mov dword [0x41116c], ebp
mov dword [0x411168], ebp
call fcn.00408e00
mov ecx, dword [esi + 8]
push ebx
call fcn.004071a0
mov ecx, esi
call fcn.00409370
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov ecx, dword [esi + 8]
push 0
mov dword [esi + 0x40], 3
call fcn.004071a0
push 1
mov ecx, esi
call fcn.00409260
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
xor ebx, ebx
mov dword [0x443b3c], ebx
mov dword [0x411160], ebx
mov dword [0x411168], ebx
mov dword [0x41116c], ebx
mov dword [0x443b38], ebx
mov dword [0x443b5c], ebx
call fcn.00408e00
fld qword [edi + 0x10]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004092c0
mov eax, dword [esi + 0x3c]
cmp eax, 0x22
je 0x409e61
cmp eax, 0x23
jne case.0x409d4c.14
mov ebp, 1
mov ecx, esi
mov dword [0x443ac4], ebp
mov dword [0x411164], ebp
call fcn.00409370
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
xor ebx, ebx
mov ebp, 1
mov dword [0x443b3c], ebx
mov dword [0x411160], ebx
mov dword [0x411168], ebx
mov dword [0x41116c], ebx
mov dword [0x443b38], ebp
mov dword [0x443b5c], ebp
fld qword [edi + 0x10]
fstp qword [0x443b40]
call fcn.00408e00
fld qword [edi + 0x10]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004092c0
mov eax, dword [esi + 0x3c]
cmp eax, 0x22
je 0x409e66
cmp eax, 0x23
jne case.0x409d4c.14
jmp 0x409e66
mov dword [esi + 0x40], 4
call fcn.00408e00
mov ecx, esi
call fcn.00409320
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fldz
mov byte [esp + 0x1c], 1
fcomp qword [edi + 0x10]
fnstsw ax
test ah, 0x44
jp 0x409f16
mov byte [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi + 8]
call fcn.004071c0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
mov ecx, dword [esi + 8]
push eax
call fcn.004071e0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
mov ecx, dword [esi + 8]
push eax
call fcn.00407200
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
mov ecx, dword [esi + 8]
push eax
call fcn.00407240
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
mov ecx, dword [esi + 8]
push eax
call fcn.00407260
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
call fcn.00409320
mov ecx, esi
call fcn.00407b10
push 0
call dword [sym.imp.MSVCR90.dll_exit]
fld qword [edi + 0x10]
lea edx, [edi + 0x18]
push edx
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00408660
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
pop edi
mov dword [esi + 0x5c], 1
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
lea eax, [edi + 0x18]
push eax
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00407780
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov esi, dword [0x443b60]
test esi, esi
je case.0x409d4c.14
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
call esi
add esp, 4
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov ecx, dword [0x443b64]
test ecx, ecx
je case.0x409d4c.14
fld qword [edi + 0x10]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov dx, word [esp + 0x10]
movzx eax, dx
push eax
fldcw word [esp + 0x20]
call ecx
add esp, 4
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov eax, dword [0x443b68]
test eax, eax
je case.0x409d4c.14
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
push ecx
push edx
call eax
add esp, 8
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov eax, dword [0x443b6c]
test eax, eax
je case.0x409d4c.14
call eax
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov esi, dword [0x443b70]
jmp 0x40a010
mov eax, dword [0x443b74]
test eax, eax
je case.0x409d4c.14
call eax
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
call fcn.00409850
pop edi
pop esi
pop ebp
mov dword [0x443b5c], 1
xor al, al
pop ebx
add esp, 8
ret 4
call fcn.00409900
pop edi
pop esi
pop ebp
mov dword [0x443b5c], 1
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
mov ecx, dword [esi + 8]
push eax
call fcn.004070b0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409a00
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
fldcw word [esp + 0x20]
call fcn.00409af0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
lea ecx, [edi + 0x18]
push ecx
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409a80
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409a40
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409b30
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409b70
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov edx, dword [esp + 0x10]
push edx
fldcw word [esp + 0x20]
call fcn.00409bb0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409bf0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409c30
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409c70
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
lea eax, [edi + 0x18]
push eax
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409120
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
fld qword [edi + 0x10]
call fcn.0040ac10
push eax
mov ecx, esi
call fcn.00409cb0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov ecx, dword [esi + 8]
call fcn.00407180
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4