Function at 0x40152e
Capabilities:
Hide graphical window
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x16c
push ebx
push esi
push edi
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0
lea edi, [ebp - 0x161]
lea esi, str.
mov ecx, 9
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x130], 0
push 0x100
lea edi, [ebp - 0x100]
push edi
push dword [ebp + 8]
call sub.kernel32.dll_GetModuleFileNameA
lea edi, [ebp - 0x100]
xor eax, eax
stc
sbb ecx, ecx
repne scasb al, byte es:[edi]
neg ecx
lea eax, [ecx - 2]
mov ebx, eax
dec ebx
jmp 0x401620
cmp byte [ebp + ebx - 0x100], 0x2e
jne 0x4015d0
mov eax, dword [ebp - 0x168]
inc eax
mov dword [ebp - 0x168], eax
cmp eax, 1
jne 0x4015d0
mov dword [ebp - 0x128], 1
cmp byte [ebp + ebx - 0x100], 0x5c
jne 0x4015e4
mov dword [ebp - 0x128], 0
cmp dword [ebp - 0x128], 0
je 0x40161f
cmp dword [ebp - 0x12c], 8
jge 0x40161f
cmp byte [ebp + ebx - 0x100], 0x2e
je 0x40161f
mov eax, dword [ebp - 0x12c]
inc dword [ebp - 0x12c]
sub eax, 7
neg eax
mov dl, byte [ebp + ebx - 0x100]
mov byte [ebp + eax - 0x161], dl
dec ebx
or ebx, ebx
jge 0x4015aa
lea eax, [ebp - 0x161]
push eax
call fcn.004013e4
mov dword [ebp - 0x158], 3
lea eax, [0x40183f]
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x148], eax
push 0x7f00
push 0
call sub.USER32.DLL_LoadIconA
mov dword [ebp - 0x144], eax
push 0x7f00
push 0
call sub.USER32.DLL_LoadCursorA
mov dword [ebp - 0x140], eax
push 0
call sub.GDI32.DLL_GetStockObject
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], 0
lea edi, [ebp - 0x161]
mov dword [ebp - 0x134], edi
lea edi, [ebp - 0x158]
push edi
call sub.USER32.DLL_RegisterClassA
push 0
push dword [ebp + 8]
push 0
push 0
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0xca0001
lea edi, [ebp - 0x161]
push edi
lea edi, [ebp - 0x161]
push edi
push 0
call sub.USER32.DLL_CreateWindowExA
mov dword [ebp - 0x16c], eax
push dword [ebp + 0x14]
push eax
call sub.USER32.DLL_ShowWindow
push dword [ebp - 0x16c]
call sub.USER32.DLL_UpdateWindow
mov edi, dword [ebp - 0x16c]
mov dword [section..bss], edi
mov dword [0x404070], 0x1a
mov dword [0x404074], 0
push 1
push 0
push edi
call sub.USER32.DLL_InvalidateRgn
push 0x4040a2
lea edi, [ebp - 0x100]
push edi
call sub.CRTDLL.DLL___fopen
add esp, 0xc
mov ebx, eax
or eax, eax
jne 0x401769
push 0
push 0
push str.error:_D2E1
push dword [ebp - 0x16c]
call sub.USER32.DLL_MessageBoxA
push 1
call sub.CRTDLL.DLL___exit
add esp, 4
push ebx
call sub.CRTDLL.DLL___fgetc
pop ecx
mov edx, eax
mov byte [ebp - 0x11d], dl
jmp 0x4017ce
cmp byte [ebp - 0x11d], 0x26
jne 0x40178b
inc dword [ebp - 0x124]
jmp 0x401795
mov dword [ebp - 0x124], 0
cmp dword [ebp - 0x130], 0
je 0x4017ac
movsx eax, byte [ebp - 0x11d]
push eax
call fcn.00401476
pop ecx
cmp dword [ebp - 0x124], 8
jle 0x4017bf
mov dword [ebp - 0x130], 1
push ebx
call sub.CRTDLL.DLL___fgetc
pop ecx
mov edx, eax
mov byte [ebp - 0x11d], dl
push ebx
call sub.CRTDLL.DLL___feof
add esp, 4
or eax, eax
je 0x40177a
cmp dword [ebp - 0x130], 0
jne 0x40181c
push 0
push 0
push str.error:_D2E2
push dword [ebp - 0x16c]
call sub.USER32.DLL_MessageBoxA
push 2
call sub.CRTDLL.DLL___exit
add esp, 4
jmp 0x40181c
lea eax, [ebp - 0x11c]
push eax
call sub.USER32.DLL_TranslateMessage
lea eax, [ebp - 0x11c]
push eax
call sub.USER32.DLL_DispatchMessageA
push 0
push 0
push 0
lea eax, [ebp - 0x11c]
push eax
call sub.USER32.DLL_GetMessageA
or eax, eax
jne 0x401804
mov eax, dword [ebp - 0x114]
pop edi
pop esi
pop ebx
leave
ret 0x10