Function at 0x456c10
Capabilities:
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov ecx, dword [ebp + 0xc]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push esi
cmp dword [ecx + 0xb0], 0
push edi
mov dword [ebp - 4], 0
jbe 0x456ccc
lea edx, [ecx + 0x30]
mov dword [ebp - 8], edx
lea esp, [esp]
push dword [edx + 4]
lea eax, [ebp - 0x4c]
push dword [edx]
push str.MODULE__llx_n
push eax
call fcn.0042e720
mov ebx, dword [0x5d14c8]
lea edi, [ebp - 0x4c]
mov esi, edi
add esp, 0x10
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x456c64
sub esi, ecx
je 0x456ca7
nop
push 0
lea eax, [ebp - 0xc]
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x456ded
push ebx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
je 0x456ded
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x456ded
add edi, eax
sub esi, eax
jne 0x456c70
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
inc eax
mov edx, dword [ebp - 8]
add edx, 8
mov dword [ebp - 4], eax
mov dword [ebp - 8], edx
cmp eax, dword [ecx + 0xb0]
jb 0x456c40
mov ebx, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov esi, dword [ecx + 0x18]
mov eax, esi
mov edx, dword [ecx + 0x1c]
or eax, edx
jne 0x456cec
mov eax, dword [ecx + 0x20]
or eax, dword [ecx + 0x24]
jne 0x456cec
mov eax, dword [ecx + 0x28]
or eax, dword [ecx + 0x2c]
je 0x456df5
push edx
push esi
push dword [ecx + 8]
lea eax, [ebp - 0x4c]
push str.GRAPHICS__d__llx_n
push eax
call fcn.0042e720
mov ecx, dword [0x5d14c8]
lea edi, [ebp - 0x4c]
mov esi, edi
mov dword [ebp - 8], ecx
add esp, 0x14
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x456d13
sub esi, edx
je 0x456d58
mov edi, edi
push 0
lea eax, [ebp - 0xc]
push eax
push esi
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x456ded
push dword [ebp - 8]
call ebx
test eax, eax
je 0x456ded
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x456ded
mov ecx, dword [ebp - 8]
add edi, eax
sub esi, eax
jne 0x456d20
mov eax, dword [ebp + 0xc]
push dword [eax + 0x24]
push dword [eax + 0x20]
push dword [eax + 0xc]
lea eax, [ebp - 0x4c]
push str.COMPUTE__d__llx_n
push eax
call fcn.0042e720
mov ecx, dword [0x5d14c8]
lea edi, [ebp - 0x4c]
mov esi, edi
mov dword [ebp - 8], ecx
add esp, 0x14
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x456d86
sub esi, edx
je 0x456dbd
push 0
lea eax, [ebp - 0xc]
push eax
push esi
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x456ded
push dword [ebp - 8]
call ebx
test eax, eax
je 0x456ded
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x456ded
mov ecx, dword [ebp - 8]
add edi, eax
sub esi, eax
jne 0x456d91
mov eax, dword [ebp + 0xc]
push dword [eax + 0x2c]
push dword [eax + 0x28]
push dword [eax + 0x10]
lea eax, [ebp - 0x4c]
push str.RAYTRACE__d__llx_n
push eax
call fcn.0042e720
lea eax, [ebp - 0x4c]
push eax
push dword [0x5d14c8]
call fcn.00463980
add esp, 0x1c
test al, al
jne 0x456df5
push 2
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.004588a0
mov ecx, esi
call fcn.00458ac0
mov ecx, dword [esi + 0x494]
test ecx, ecx
je 0x456e15
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esi + 0x498]
test ecx, ecx
je 0x456e24
mov eax, dword [ecx]
call dword [eax + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret