Function at 0x45a7b0
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x1004
call fcn.0046e9b0
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x330]
xor ebx, ebx
mov ebp, 1
cmp eax, ebp
push edi
mov edi, dword [esp + 0x101c]
mov dword [esi + 0x28], ebx
je 0x45a7ef
cmp eax, 2
jne 0x45a7e5
mov dword [esi + 0x24], ebp
jmp 0x45a7f2
cmp edi, 4
je 0x45a7ef
mov dword [esi + 0x24], ebp
jmp 0x45a7f2
mov dword [esi + 0x24], ebx
cmp eax, 3
jne 0x45a7fd
mov dword [esi + 0x24], ebp
mov dword [esi + 0x28], ebp
call fcn.0045a140
mov eax, dword [esp + 0x1018]
cmp word [eax], bx
je 0x45a822
push ebx
push ebx
push 2
push ebx
push ebp
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
jmp 0x45a82a
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x45a9a2
cmp dword [esi + 0x24], ebx
je 0x45a865
cmp dword [esi + 0x28], ebx
mov dword [esp + 0x10], ebx
push ebx
je 0x45a852
lea eax, [esp + 0x14]
push eax
push 3
push 0x470fa0
jmp 0x45a85e
lea ecx, [esp + 0x14]
push ecx
push 2
push 0x470fa4
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0x7f02
push ebx
mov dword [esp + 0x18], 1
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
cmp edi, 5
mov dword [0x47b230], eax
je 0x45a88f
cmp edi, 6
jne 0x45a89a
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
push edi
push ebp
mov ecx, esi
call eax
cmp edi, 7
jne 0x45a8ab
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
push ebp
mov ecx, esi
call eax
jmp 0x45a8da
cmp edi, 2
jne 0x45a8c2
cmp dword [esi + 0x32c], ebx
je 0x45a8da
push ebx
mov ebx, ebp
call fcn.00459630
jmp 0x45a8d8
cmp edi, 4
jne 0x45a8da
cmp dword [esi + 0x32c], ebx
je 0x45a8da
push ebx
push ebp
mov ebx, esi
call fcn.00459d20
xor ebx, ebx
cmp dword [esi + 0x38], 0
jle 0x45a94c
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edi, dword [esi + 4]
mov eax, dword [eax]
imul edi, ebx
mov edx, dword [esi]
add edi, eax
mov eax, dword [edx + 0x30]
push edi
mov ecx, esi
call eax
test eax, eax
je 0x45a91a
mov eax, dword [esp + 0x101c]
mov edx, dword [esi]
mov edx, dword [edx + 0x80]
push eax
push edi
push ebp
mov ecx, esi
call edx
test eax, eax
je 0x45a924
add ebx, 1
cmp ebx, dword [esi + 0x38]
jl 0x45a8e0
jmp 0x45a945
mov dword [esp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xe8
je 0x45a945
push 0
mov ecx, eax
call fcn.00461190
add esp, 4
mov edi, dword [esp + 0x101c]
cmp edi, 5
je 0x45a956
cmp edi, 6
jne 0x45a961
mov eax, dword [esi]
mov edx, dword [eax + 0x54]
push edi
push ebp
mov ecx, esi
call edx
cmp edi, 7
jne 0x45a970
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ebp
mov ecx, esi
call edx
mov eax, dword [esp + 0x1018]
cmp word [eax], 0
je 0x45a984
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x47b230]
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1004
ret 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea ebx, [esp + 0x14]
call fcn.00460250
mov edx, ebx
push edx
push edi
push 0x4706c4
lea eax, [esp + 0x820]
push 0x400
push eax
call sub.msvcrt.dll__snwprintf
add esp, 0x14
push 0x30
push str.Error
lea ecx, [esp + 0x81c]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1004
ret 8