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

Disassembly:
push 0xffffffffffffffff
push 0x4596b8
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, 0x3db8
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 0x408f1f
mov esi, dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0
push ebx
call esi
cmp eax, 0x180000
jb 0x408f1c
cmp ebp, 0xffffffff
je 0x408f1c
push 0
push ebp
call esi
cmp eax, 0x80000
jb 0x408f1c
mov eax, dword [0x497678]
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 [0x497680]
lea ecx, [esp + 0x14]
push 0
push ecx
push 0x180000
push edx
push ebp
call esi
xor eax, eax
mov al, byte [0x4972df]
cmp eax, 5
ja case.default.0x408d6e
jmp dword [eax*4 + 0x408f40]
xor eax, eax
mov ecx, dword [0x497678]
inc eax
cmp eax, 0x180000
mov dl, byte [ecx + eax - 1]
mov ecx, dword [0x49767c]
not dl
mov byte [ecx + eax - 1], dl
jb 0x408d77
mov esi, dword [0x497678]
mov edi, dword [0x497684]
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 0x408dc7
dec edx
neg edx
sbb edx, edx
and edx, 0xffffffab
add edx, 0xaa
mov eax, dword [0x497684]
inc ecx
cmp ecx, 0x180000
mov byte [eax + ecx - 1], dl
jb 0x408daa
jmp case.default.0x408d6e
xor eax, eax
mov ecx, dword [0x497678]
inc eax
cmp eax, 0x180000
mov dl, byte [ecx + eax - 1]
mov ecx, dword [0x49767c]
mov byte [ecx + eax - 1], dl
mov edx, dword [0x497678]
mov byte [edx + eax - 1], 0
jb 0x408de0
jmp case.default.0x408d6e
xor eax, eax
mov ecx, dword [0x497678]
mov dl, byte [ecx + eax]
mov ecx, dword [0x49767c]
mov byte [ecx + eax], dl
mov edx, eax
mov ecx, dword [0x497678]
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 0x408e0e
jmp case.default.0x408d6e
xor eax, eax
mov edx, dword [0x497678]
mov cl, byte [edx + eax]
mov edx, dword [0x49767c]
mov byte [edx + eax], cl
mov ecx, dword [0x497678]
mov byte [ecx + eax], al
inc eax
cmp eax, 0x180000
jb 0x408e47
jmp case.default.0x408d6e
xor eax, eax
mov ecx, eax
and ecx, 0xfff
cmp ecx, 0x3ff
jbe 0x408e9e
cmp ecx, 0x800
jae 0x408e9e
mov edx, eax
mov ecx, dword [0x497678]
and dl, 1
neg dl
sbb dl, dl
and dl, 0xab
add dl, 0xaa
mov byte [ecx + eax], dl
mov edx, dword [0x497678]
inc eax
cmp eax, 0x180000
mov cl, byte [edx + eax - 1]
mov edx, dword [0x49767c]
not cl
mov byte [edx + eax - 1], cl
jb 0x408e6e
jmp case.default.0x408d6e
xor eax, eax
mov ecx, dword [0x497678]
mov edx, eax
and dl, 1
neg dl
sbb dl, dl
mov byte [ecx + eax], 0
mov ecx, dword [0x49767c]
and dl, 0xab
add dl, 0xaa
mov byte [ecx + eax], dl
inc eax
cmp eax, 0x180000
jb 0x408ec0
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 0x408f27
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]
jne 0x408ecf
inc eax
add dh, bl
lea eax, [eax]
or al, 0x8e
inc eax
add byte [ebp - 0x72], al
inc eax
add byte [esi + ecx*4 + 0x40], ch
add byte [esi - 0x6fffbf72], bh
nop
nop
nop
nop
nop
nop
nop
push esi
mov esi, ecx
call sub.MFC42.DLL_CComboBox::CComboBox
test byte [esp + 8], 1
je 0x408f78
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, esi
pop esi
ret 4