Function at 0x408cb0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a8
push ebx
push esi
push edi
push 0
push 0
push 0
push 0x5617a4
mov byte [ebp - 1], 1
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x40], 5
call dword [sym.imp.GDI32.dll_CreateDCA]
mov esi, eax
push 0xc
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
mov ebx, eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [ebp + 0x18]
push 0
push 0
push 0
mov esi, dword [ecx + 0x42c]
push 0x5617a4
call dword [sym.imp.GDI32.dll_CreateDCA]
xor ecx, ecx
mov dword [ebp - 0x34], eax
push ecx
push 0x80
push 4
push ecx
push 3
push 0xc0000000
push dword [ebp + 0xc]
mov dword [ebp - 0x44], 0
xor edi, edi
mov dword [ebp - 0xc], ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push edi
push 0x80
push 4
push edi
push 3
push 0xc0000000
push dword [ebp + 0x10]
mov dword [ebp - 0x28], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push edi
push 0x80
push 4
push edi
push 3
push 0xc0000000
push dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x24], eax
xor edx, edx
lea eax, [esi*8]
mov ecx, dword [ebp - 0x28]
div ebx
mov esi, eax
mov dword [ebp - 0x54], esi
cmp ecx, 0xffffffff
je 0x4090f3
cmp dword [ebp - 0x14], 0xffffffff
je 0x4090f3
add ebx, 0xfffffff8
mov dword [ebp - 0x48], ebx
jmp 0x408da3
mov ecx, dword [ebp - 0x28]
cmp ebx, 0x18
ja case.0x408db3.1
movzx eax, byte [ebx + 0x40912c]
jmp dword [eax*4 + 0x409118]
push 0
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 3]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 2]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov cl, byte [ebp - 2]
cmp cl, byte [ebp - 3]
jne 0x408df6
mov byte [ebp - 1], 1
jmp case.0x408f86.1
xor al, al
mov byte [ebp - 1], al
jmp 0x408f5c
push 0
lea eax, [ebp - 8]
push eax
push 2
lea eax, [ebp - 0x1c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 8]
push eax
push 2
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ax, word [ebp - 0x18]
cmp ax, word [ebp - 0x1c]
jne 0x408df6
mov byte [ebp - 1], 1
jmp case.0x408f86.1
push 0
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 3]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov al, byte [ebp - 3]
mov ebx, dword [ebp - 0x14]
push 0
mov byte [ebp - 0xd], al
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 2]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov al, byte [ebp - 2]
push 0
mov byte [ebp - 0xe], al
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 3]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov al, byte [ebp - 3]
push 0
mov byte [ebp - 1], al
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 2]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov bh, byte [ebp - 2]
lea eax, [ebp - 8]
push 0
push eax
push 1
lea eax, [ebp - 3]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov bl, byte [ebp - 3]
push 0
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 2]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, byte [ebp - 1]
movzx edx, byte [ebp - 2]
movzx ecx, bl
shl ecx, 8
or ecx, eax
shl edx, 8
movzx eax, byte [ebp - 0xd]
shl ecx, 8
or ecx, eax
movzx eax, bh
mov ebx, dword [ebp - 0x48]
or edx, eax
movzx eax, byte [ebp - 0xe]
shl edx, 8
or edx, eax
mov dword [ebp - 0x50], ecx
cmp edx, ecx
mov dword [ebp - 0x4c], edx
sete cl
mov byte [ebp - 1], cl
jmp 0x408f54
push 0
lea eax, [ebp - 8]
push eax
push 4
lea eax, [ebp - 0x3c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 8]
push eax
push 4
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x3c]
jne 0x408df6
mov byte [ebp - 1], 1
jmp case.0x408f86.1
mov cl, byte [ebp - 1]
test cl, cl
jne case.0x408f86.1
xor edx, edx
mov eax, edi
test esi, esi
je 0x408f6b
div esi
mov dword [ebp - 0x20], eax
jmp 0x408f6f
xor ecx, ecx
div ecx
imul eax, esi
mov ecx, edi
sub ecx, eax
cmp ebx, 0x18
ja case.0x408f86.1
movzx eax, byte [ebx + 0x40915c]
jmp dword [eax*4 + 0x409148]
mov edx, dword [ebp - 0xc]
inc edx
cmp byte [0x59e360], 0
mov dword [ebp - 0xc], edx
je case.0x408f86.1
movzx eax, byte [ebp - 2]
push eax
movzx eax, byte [ebp - 3]
push eax
push dword [ebp - 0x20]
push ecx
push edx
push 0x5618f8
jmp 0x40901f
mov edx, dword [ebp - 0xc]
inc edx
cmp byte [0x59e360], 0
mov dword [ebp - 0xc], edx
je case.0x408f86.1
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1c]
push eax
push dword [ebp - 0x20]
push ecx
push edx
push 0x5618f8
jmp 0x40901f
mov edx, dword [ebp - 0xc]
inc edx
cmp byte [0x59e360], 0
mov dword [ebp - 0xc], edx
je case.0x408f86.1
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
push dword [ebp - 0x20]
push ecx
push edx
push 0x5618f8
jmp 0x40901f
mov edx, dword [ebp - 0xc]
inc edx
cmp byte [0x59e360], 0
mov dword [ebp - 0xc], edx
je case.0x408f86.1
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp - 0x20]
push ecx
push edx
push str._n_Record_Number_:__d_n_X_offset__:__d_n_Y_offset__:__d_n_Expected______:__x_n_Actual________:__x_n__n
lea eax, [ebp - 0x154]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
lea ecx, [ebp - 0x30]
push 0
push ecx
push eax
lea eax, [ebp - 0x154]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x44]
cmp eax, 0x2710
jne 0x4090a5
lea eax, [ebp - 0x1a8]
push 0x561a08
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
mov esi, eax
push 0xffff
push dword [ebp - 0x34]
call dword [sym.imp.GDI32.dll_SetBkColor]
push 0xffff
push dword [ebp - 0x34]
call dword [sym.imp.GDI32.dll_SetTextColor]
push esi
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x1a8]
push eax
push 0x37
push esi
push dword [ebp - 0x34]
call dword [sym.imp.GDI32.dll_TextOutA]
add esi, 5
xor eax, eax
mov dword [ebp - 0x40], esi
mov esi, dword [ebp - 0x54]
inc eax
inc edi
cmp dword [ebp - 0x2c], 0
mov dword [ebp - 0x44], eax
je 0x4090ba
cmp dword [ebp - 8], 0
jne 0x408da0
cmp byte [0x59e360], 0
je 0x4090f3
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x154]
push ecx
push str._n_FINAL_ANALYSIS_n_Total_Pixel_Errors_:__x_n__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x30]
push 0
push ecx
push eax
lea eax, [ebp - 0x154]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0x34]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret