Function at 0x431498
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff20
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404fe0
xor eax, eax
push ebp
push 0x4316f4
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.user32.dll_GetDC
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov edi, eax
mov dword [ebp - 0x48], 0x28
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], ebx
mov word [ebp - 0x3c], 1
mov word [ebp - 0x3a], 0x18
xor eax, eax
mov dword [ebp - 0x38], eax
lea eax, [esi + esi*2]
add eax, 3
and eax, 0xfffffffc
imul ebx
mov dword [ebp - 0x34], eax
push 0
push 0
lea eax, [ebp - 0x14]
push eax
push 0
lea eax, [ebp - 0x48]
push eax
push edi
call sub.gdi32.dll_CreateDIBSection
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
push edi
call sub.gdi32.dll_SelectObject
push 0xcc0020
mov eax, dword [ebp + 8]
sub eax, 0x19
push eax
mov eax, dword [ebp + 0xc]
sub eax, 0x19
push eax
mov eax, dword [ebp - 0xc]
push eax
push ebx
push esi
push 0
push 0
push edi
call sub.gdi32.dll_BitBlt
mov word [ebp - 0x56], 0x4d42
mov esi, dword [ebp - 0x34]
mov eax, esi
add eax, 0x36
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], 0x36
push esi
lea eax, [ebp - 0x1c]
mov ecx, 1
mov edx, dword [0x431474]
call fcn.00406110
add esp, 4
push 1
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push ebx
push 1
mov eax, dword [ebp - 8]
push eax
push edi
call sub.gdi32.dll_GetDIBits
push 0x1002
lea eax, [ebp - 0xde]
push eax
mov eax, dword [ebp - 4]
call fcn.00404ff0
push eax
call sub.kernel32.dll_OpenFile
mov ebx, eax
push 0
lea eax, [ebp - 0x10]
push eax
push 2
lea eax, [ebp - 0x56]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x54]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
mov byte [ebp - 0x15], 0
mov esi, 4
push 0
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 0x15]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
dec esi
jne 0x4315da
push 0
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x4c]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x48]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x44]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x40]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 2
lea eax, [ebp - 0x3c]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 2
lea eax, [ebp - 0x3a]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x38]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 0x10]
push eax
push 4
lea eax, [ebp - 0x34]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
mov esi, 0x10
push 0
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 0x15]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
dec esi
jne 0x431684
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
lea eax, [ebp - 0x1c]
mov edx, dword [0x431474]
call fcn.00406230
push ebx
call sub.kernel32.dll_CloseHandle_1
push edi
call sub.gdi32.dll_DeleteObject
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_DeleteObject
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4316fb
lea eax, [ebp - 0x1c]
mov edx, dword [0x431474]
call fcn.00406230
lea eax, [ebp - 4]
call fcn.00404b40
ret