Function at 0x408cb0
Capabilities:
Get file size
Read file on windows
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x4a6db8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov eax, dword [esp + 0x28]
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push eax
mov dword [esp + 0x3c], 0
call edi
add esi, 0x3dc4
push str.DLLLLF1.DLL
lea ecx, [esp + 0x14]
push esi
push ecx
mov ebx, eax
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push eax
call edi
lea ecx, [esp + 0x10]
mov ebp, eax
call sub.MFC42.DLL_CString::CString
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, 0xffffffff
je 0x408f5f
mov esi, dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0
push ebx
call esi
cmp eax, 0x180000
jb 0x408f5c
cmp ebp, 0xffffffff
je 0x408f5c
push 0
push ebp
call esi
cmp eax, 0x80000
jb 0x408f5c
mov eax, dword [0x4e6018]
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea edx, [esp + 0x14]
push 0
push edx
push 0x180000
push eax
push ebx
call esi
mov edx, dword [0x4e6020]
lea ecx, [esp + 0x14]
push 0
push ecx
push 0x180000
push edx
push ebp
call esi
xor eax, eax
mov al, byte [0x4e5ccb]
cmp eax, 5
ja case.default.0x408dae
jmp dword [eax*4 + 0x408f80]
xor eax, eax
mov ecx, dword [0x4e6018]
inc eax
cmp eax, 0x180000
mov dl, byte [ecx + eax - 1]
mov ecx, dword [0x4e601c]
not dl
mov byte [ecx + eax - 1], dl
jb 0x408db7
mov esi, dword [0x4e6018]
mov edi, dword [0x4e6024]
mov ecx, 0x60000
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov eax, ecx
xor edx, edx
mov esi, 3
div esi
test edx, edx
je 0x408e07
dec edx
neg edx
sbb edx, edx
and edx, 0xffffffab
add edx, 0xaa
mov eax, dword [0x4e6024]
inc ecx
cmp ecx, 0x180000
mov byte [eax + ecx - 1], dl
jb 0x408dea
jmp case.default.0x408dae
xor eax, eax
mov ecx, dword [0x4e6018]
inc eax
cmp eax, 0x180000
mov dl, byte [ecx + eax - 1]
mov ecx, dword [0x4e601c]
mov byte [ecx + eax - 1], dl
mov edx, dword [0x4e6018]
mov byte [edx + eax - 1], 0
jb 0x408e20
jmp case.default.0x408dae
xor eax, eax
mov ecx, dword [0x4e6018]
mov dl, byte [ecx + eax]
mov ecx, dword [0x4e601c]
mov byte [ecx + eax], dl
mov edx, eax
mov ecx, dword [0x4e6018]
and dl, 1
neg dl
sbb dl, dl
and dl, 0xab
add dl, 0xaa
mov byte [ecx + eax], dl
inc eax
cmp eax, 0x180000
jb 0x408e4e
jmp case.default.0x408dae
xor eax, eax
mov edx, dword [0x4e6018]
mov cl, byte [edx + eax]
mov edx, dword [0x4e601c]
mov byte [edx + eax], cl
mov ecx, dword [0x4e6018]
mov byte [ecx + eax], al
inc eax
cmp eax, 0x180000
jb 0x408e87
jmp case.default.0x408dae
xor eax, eax
mov ecx, eax
and ecx, 0xfff
cmp ecx, 0x3ff
jbe 0x408ede
cmp ecx, 0x800
jae 0x408ede
mov edx, eax
mov ecx, dword [0x4e6018]
and dl, 1
neg dl
sbb dl, dl
and dl, 0xab
add dl, 0xaa
mov byte [ecx + eax], dl
mov edx, dword [0x4e6018]
inc eax
cmp eax, 0x180000
mov cl, byte [edx + eax - 1]
mov edx, dword [0x4e601c]
not cl
mov byte [edx + eax - 1], cl
jb 0x408eae
jmp case.default.0x408dae
xor eax, eax
mov ecx, dword [0x4e6018]
mov edx, eax
and dl, 1
neg dl
sbb dl, dl
mov byte [ecx + eax], 0
mov ecx, dword [0x4e601c]
and dl, 0xab
add dl, 0xaa
mov byte [ecx + eax], dl
inc eax
cmp eax, 0x180000
jb 0x408f00
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call esi
push ebp
call esi
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret 4
push ebx
call edi
cmp ebp, 0xffffffff
je 0x408f67
push ebp
call edi
push 0
push 0
push str.Load_LLF.DLL_Fail
call sub.MFC42.DLL_AfxMessageBox
push 1
call dword [sym.imp.MSVCRT.dll_exit]
lea ecx, [ecx]
mov ch, 0x8d
inc eax
add byte [esi], bl
mov es, word [eax]
dec esp
mov es, word [eax]
test dword [esi - 0x7153ffc0], ecx
inc eax
add dh, bh
mov es, word [eax]
nop
nop
nop
nop
nop
nop
nop
nop