Function at 0x40e8fb
Capabilities:
Check for software breakpoints
Parse pe header
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
xor ebx, ebx
push esi
mov esi, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], esi
mov byte [ebp - 1], bl
cmp dword [0x45e360], ebx
jne 0x40e942
push str.Please_Load_a_nanomites_anf_file_to_continue_
call fcn.0040d967
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
pop ecx
push ebx
push dword [0x44f374]
call esi
push ebx
push dword [0x44f358]
call esi
xor eax, eax
jmp 0x40ee70
push edi
mov edi, 0x44fea0
push edi
call fcn.0040b73f
pop ecx
test eax, eax
je 0x40ee67
push 0x5c
push edi
call fcn.00414dac
pop ecx
pop ecx
mov ecx, eax
mov edi, 0x45d778
mov dword [0x44f84c], ecx
test ecx, ecx
je 0x40e985
inc ecx
mov edx, edi
mov dword [0x44f84c], ecx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40e97b
push str._______Resolving_Nanomites_______
call fcn.0040d967
pop ecx
push ebx
push 0x80
push 3
push ebx
push 3
push 0xc0000000
push 0x44fea0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
mov dword [ebp - 0x10], ebx
cmp ebx, 0xffffffff
jne 0x40e9cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.CreateFile_error__s__d
call fcn.0040d967
add esp, 0xc
jmp 0x40ee6d
push 4
push 0x3000
push dword [0x44f0c4]
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x4515d8], eax
test eax, eax
jne 0x40ea08
push str.VirtualAlloc_Error_ResolveDump
call fcn.0040d967
push edi
call fcn.0040d967
pop ecx
xor esi, esi
pop ecx
inc esi
jmp 0x40ee2b
push edi
push 0x451570
push dword [0x44f0c4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40ea27
push str.ReadFile_Error_ResolveDump
jmp 0x40e9f3
mov ecx, dword [0x4515d8]
mov dword [0x45f430], ecx
mov dword [0x45f434], ecx
mov eax, dword [ecx + 0x3c]
lea edi, [ecx + 0xf8]
add eax, 4
add eax, ecx
mov dword [0x45f438], eax
lea eax, [ecx + 0x18]
mov edx, dword [ecx + 0x3c]
add eax, edx
mov dword [0x45f43c], eax
mov eax, 0x5a4d
add edi, dword [ecx + 0x3c]
mov dword [0x45f440], edi
mov dword [ebp - 0xc], edx
cmp word [ecx], ax
je 0x40ea8a
push str.IMAGE_DOS_SIGNATURE_not_found
call fcn.0040d967
mov dword [esp], 0x45d778
push 0x445dac
jmp 0x40e9f9
mov eax, dword [ecx + 0x3c]
cmp dword [ecx + eax], 0x4550
je 0x40ea9d
push str.IMAGE_NT_SIGNATURE_not_found
jmp 0x40ea74
mov eax, dword [ebp - 0xc]
mov edx, dword [edx + ecx + 0x50]
mov dword [0x45d560], edx
mov eax, dword [eax + ecx + 0x34]
and dword [0x45f3a0], esi
and dword [0x45f3a4], esi
mov dword [ebp - 0xc], eax
mov dword [0x45f418], eax
test edi, edi
je 0x40eb01
and dword [0x45db90], esi
mov eax, edi
xor ecx, ecx
mov ebx, edi
mov eax, dword [eax + 0xc]
add edi, 0x28
add eax, dword [ebp - 0xc]
inc ecx
mov dword [0x45f3a0], eax
mov eax, dword [ebx + 8]
mov dword [0x45f3a4], eax
mov eax, edi
mov dword [0x45f440], edi
mov ebx, eax
mov dword [0x45db90], ecx
cmp ecx, 1
jl 0x40ead2
mov ebx, dword [ebp - 0x10]
push 4
sub edx, 0x1000
push 0x3000
push edx
push 0
mov dword [0x45d560], edx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x4515d4], eax
test eax, eax
jne 0x40eb37
push str.VirtualAlloc_Error_ResolveDump
call fcn.0040d967
push 0
jmp 0x40e9f9
push 0
push 0x451570
push dword [0x45d560]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40eb57
push str.ReadFile_Error_ResolveDump
jmp 0x40eb2b
xor eax, eax
push 0x40
push eax
push 0x45e078
mov dword [0x45e06c], eax
mov dword [0x45e070], eax
call sub.VCRUNTIME140D.dll_memset
add esp, 0xc
mov ecx, 0x45f670
push 0x44577b
call fcn.004028d4
and dword [ebp - 0xc], esi
mov eax, dword [0x45e360]
test eax, eax
je 0x40ee06
xor esi, esi
push 0x100
push 0
push 0x45ea30
call sub.VCRUNTIME140D.dll_memset
push 0x100
push 0
push 0x45eb30
call sub.VCRUNTIME140D.dll_memset
xor eax, eax
mov edi, 0x45ec30
push 0x100
push 0
push 0x45ec40
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call sub.VCRUNTIME140D.dll_memset
mov eax, dword [0x45e054]
add esp, 0x24
mov eax, dword [esi + eax + 8]
cmp eax, 0x19
ja case.0x40ebe7.0
jmp dword [eax*4 + 0x40ee77]
mov eax, str.NotNanomite
jmp 0x40ecad
mov eax, 0x4483f4
jmp 0x40ecad
mov eax, 0x4483f8
jmp 0x40ecad
mov eax, 0x4483fc
jmp 0x40ecad
mov eax, 0x448400
jmp 0x40ecad
mov eax, 0x448404
jmp 0x40ecad
mov eax, 0x448408
jmp 0x40ecad
mov eax, 0x44840c
jmp 0x40ecad
mov eax, 0x448410
jmp 0x40ecad
mov eax, 0x448414
jmp 0x40ecad
mov eax, 0x448418
jmp 0x40ecad
mov eax, 0x44841c
jmp 0x40ecad
mov eax, 0x448420
jmp 0x40ecad
mov eax, 0x448424
jmp 0x40ecad
mov eax, 0x448428
jmp 0x40ecad
mov eax, 0x44842c
jmp 0x40ecad
mov eax, 0x448430
jmp 0x40ecad
mov eax, 0x448434
jmp 0x40ecad
mov eax, str.JCXZ
jmp 0x40ecad
mov eax, str.JNCXZ
jmp 0x40ecad
mov eax, 0x448448
jmp 0x40ecad
mov eax, 0x44844c
jmp 0x40ecad
mov eax, 0x448450
jmp 0x40ecad
mov eax, 0x448454
jmp 0x40ecad
mov eax, str.JUnknown
push eax
push 0x445dac
push 0x45ea30
call fcn.004150c6
mov eax, dword [0x45e054]
mov edi, 0x45eb30
push dword [esi + eax + 4]
push str._08X
push edi
call fcn.004150c6
push edi
push 0x45ea30
push str._s__s
push 0x45ec30
call fcn.004150c6
push 0x30
push 0
mov edi, 0x45e390
push edi
call sub.VCRUNTIME140D.dll_memset
add esp, 0x34
mov dword [0x45e38c], 0x45ec30
xor eax, eax
mov dword [0x45db94], eax
push 0x45ed40
push eax
push eax
mov eax, dword [0x45e054]
push edi
push dword [esi + eax]
push 0x45ec30
call dword [sym.imp.disasm.dll__Assemble_24]
mov dword [0x45db94], eax
test eax, eax
jg 0x40ed7a
push 0x45ed40
push str.error__s
call fcn.0040d967
mov eax, dword [0x45e054]
push dword [esi + eax]
push str.Address:__08X
call fcn.0040d967
push 0x45ea30
push str.Jumptype:__s
call fcn.0040d967
mov eax, dword [0x45e054]
push dword [esi + eax + 4]
push str.Jumpdest:__08X
call fcn.0040d967
add esp, 0x20
jmp 0x40ede5
mov eax, dword [0x45e054]
push 0
push 0
mov edi, dword [esi + eax]
mov eax, dword [0x45f440]
sub edi, dword [eax + 0xc]
add edi, dword [eax + 0x14]
sub edi, dword [0x45f418]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0x451570
push 1
lea eax, [ebp - 1]
mov byte [ebp - 1], 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [ebp - 1], 0xcc
jne 0x40ede5
push 0
push 0
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0x451574
push dword [0x45db94]
push 0x45e390
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
inc dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add esi, 0xc
and dword [0x45db9c], 0
inc ecx
mov eax, dword [0x45e360]
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jb 0x40eb94
mov esi, dword [ebp - 0x14]
push eax
push str._lu_INT3_processed...
call fcn.0040d967
push dword [ebp - 8]
push str._lu_INT3_resolved...
call fcn.0040d967
push str.Done.
call fcn.0040d967
add esp, 0x14
test ebx, ebx
je 0x40ee36
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x45e054]
test eax, eax
je 0x40ee54
push eax
call fcn.00415a50
and dword [0x45e054], 0
and dword [0x45e360], 0
pop ecx
call fcn.0040b648
call fcn.0040b686
xor eax, eax
test esi, esi
sete al
jmp 0x40ee6f
mov dword [0x44fea0], ebx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret