Function at 0x407568
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
mov ebx, dword [0x4097bc]
xor eax, eax
push ebp
push 0x40785d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
call fcn.00405aec
cmp al, 1
jne 0x40766d
mov eax, ebx
mov edx, dword [ebp - 4]
call fcn.004033d4
lea eax, [ebx + 0x100]
mov edx, dword [ebp - 4]
add edx, 0x100
call fcn.004033d4
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xa00]
mov byte [ebx + 0xa00], al
lea eax, [ebx + 0x200]
mov edx, dword [ebp - 4]
add edx, 0x200
call fcn.004033d4
lea eax, [ebx + 0x300]
mov edx, dword [ebp - 4]
add edx, 0x300
call fcn.004033d4
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xa03]
mov byte [ebx + 0xa03], al
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xa01]
mov byte [ebx + 0xa01], al
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xa02]
mov byte [ebx + 0xa02], al
lea eax, [ebx + 0x400]
mov edx, dword [ebp - 4]
add edx, 0x400
call fcn.004033d4
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xa06]
mov byte [ebx + 0xa06], al
lea eax, [ebx + 0x900]
mov edx, dword [ebp - 4]
add edx, 0x900
call fcn.004033d4
lea eax, [ebx + 0x700]
mov edx, dword [ebp - 4]
add edx, 0x700
call fcn.004033d4
jmp 0x4077cc
push 0x40786c
push 0
push 4
call sub.kernel32.dll_OpenFileMappingA
mov dword [0x40d20c], eax
cmp dword [0x40d20c], 0
je 0x4077c5
push 0
push 0
push 0
push 4
mov eax, dword [0x40d20c]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [0x40d210], eax
mov eax, ebx
mov edx, dword [0x40d210]
call fcn.004033d4
lea eax, [ebx + 0x100]
mov edx, dword [0x40d210]
add edx, 0x100
call fcn.004033d4
mov eax, dword [0x40d210]
movzx eax, byte [eax + 0xa00]
mov byte [ebx + 0xa00], al
lea eax, [ebx + 0x200]
mov edx, dword [0x40d210]
add edx, 0x200
call fcn.004033d4
lea eax, [ebx + 0x300]
mov edx, dword [0x40d210]
add edx, 0x300
call fcn.004033d4
mov eax, dword [0x40d210]
movzx eax, byte [eax + 0xa03]
mov byte [ebx + 0xa03], al
mov eax, dword [0x40d210]
movzx eax, byte [eax + 0xa01]
mov byte [ebx + 0xa01], al
mov eax, dword [0x40d210]
movzx eax, byte [eax + 0xa02]
mov byte [ebx + 0xa02], al
lea eax, [ebx + 0x400]
mov edx, dword [0x40d210]
add edx, 0x400
call fcn.004033d4
mov eax, dword [0x40d210]
movzx eax, byte [eax + 0xa06]
mov byte [ebx + 0xa06], al
lea eax, [ebx + 0x900]
mov edx, dword [0x40d210]
add edx, 0x900
call fcn.004033d4
lea eax, [ebx + 0x700]
mov edx, dword [0x40d210]
add edx, 0x700
call fcn.004033d4
lea eax, [ebx + 0x800]
mov edx, dword [0x40d210]
add edx, 0x800
call fcn.004033d4
mov eax, dword [0x40d210]
push eax
call sub.kernel32.dll_UnmapViewOfFile
mov eax, dword [0x40d20c]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x4077cc
push 0
call sub.kernel32.dll_ExitProcess_1
lea eax, [ebp - 8]
lea edx, [ebx + 0x700]
call fcn.00404314
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0xc]
call fcn.00406ccc
mov edx, dword [ebp - 0xc]
mov eax, 0x40d208
pop ecx
call fcn.004043b4
mov byte [0x40d228], 1
lea eax, [ebx + 0x700]
mov edx, 0x407874
movzx ecx, byte [eax]
inc ecx
call fcn.004033fc
jne 0x407818
mov byte [0x40d228], 0
movzx eax, byte [ebx]
movzx edx, al
movzx eax, al
shr eax, 1
sub edx, eax
movzx eax, byte [ebx + edx + 1]
mov dword [0x40d218], eax
movzx eax, byte [ebx]
movzx edx, byte [ebx]
shr edx, 1
sub eax, edx
movzx eax, byte [ebx + eax]
mov dword [0x40d21c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x407864
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004041d8
ret