Function at 0x402aa0
Capabilities:
Create process on windows
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x5c6a7c]
xor eax, esp
mov dword [esp + 0xc4], eax
push esi
mov esi, dword [ebp + 8]
push edi
push str.CONFIG_LOAD
call fcn.00404cb0
add esp, 4
call fcn.00401220
push 0x5ce310
push str.TRAIN__s
call fcn.00404cb0
add esp, 8
mov ecx, str.TRAIN
mov eax, 0x5ce310
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402b10
test dl, dl
je 0x402b0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402b10
add eax, 2
add ecx, 2
test dl, dl
jne 0x402af0
xor eax, eax
jmp 0x402b15
sbb eax, eax
or eax, 1
test eax, eax
je 0x402bc0
push 0x5cd278
push str.__________CALL_NEXT_PAGE_:__s
call fcn.00404cb0
add esp, 8
mov ecx, 0x5b87bf
mov eax, 0x5cd278
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402b60
test dl, dl
je 0x402b5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402b60
add eax, 2
add ecx, 2
test dl, dl
jne 0x402b40
xor eax, eax
jmp 0x402b65
sbb eax, eax
or eax, 1
test eax, eax
je 0x402b8c
push 5
push 0
push 0
push 0x5cd278
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push eax
push str.SHELL_RETURN_:__d
call fcn.00404cb0
add esp, 8
push 0
push 0
push 0x10
push dword [0x5cf76c]
mov dword [0x5cf7f0], 1
call dword [sym.imp.USER32.dll_PostMessageA]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.00518e98
mov esp, ebp
pop ebp
ret 0x10
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov eax, dword [0x5b8b9c]
movq xmm0, qword [str.BSD_DROPPER2]
mov dword [esp + 0xc4], eax
mov al, byte [0x5b8ba0]
movq qword [esp + 0xbc], xmm0
xorps xmm0, xmm0
mov byte [esp + 0xc8], al
lea eax, [esp + 0xbc]
push 0x7f00
push 0
mov dword [esp + 0x60], 0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x74], xmm0
movlpd qword [esp + 0x7c], xmm0
mov dword [esp + 0x84], eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x64], 0x401fa0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
push 0
push esi
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
push 0
push 0x4f
call esi
push eax
push 0x4e
call esi
push eax
push 0x4d
call esi
push eax
push 0x4c
call esi
push eax
push reloc.WS2_32.dll_htonl
lea eax, [esp + 0xe0]
push eax
push eax
push 0x40000
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x5cf76c], eax
test eax, eax
jne 0x402cb5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.HWND_NULL_:_ERROR____d
call fcn.00404cb0
add esp, 8
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.00518e98
mov esp, ebp
pop ebp
ret 0x10
push 0x4f
call esi
push eax
push 0x4e
call esi
push eax
push 0x4d
call esi
push eax
push 0x4c
call esi
push eax
push str.WINDOW_RECT_:__d___d____d___d
call fcn.00404cb0
add esp, 0x14
mov dword [0x5d03b0], 1
lea ecx, [esp + 0x80]
push 0x405780
call fcn.004049a0
cmp dword [0x5d03d0], 0
jne 0x4031f6
mov ecx, dword [eax]
mov dword [0x5d03cc], ecx
mov ecx, dword [eax + 4]
mov dword [0x5d03d0], ecx
mov dword [eax], 0
mov dword [eax + 4], 0
cmp dword [esp + 0x84], 0
jne 0x4031f6
mov eax, dword [0x5d03d0]
test eax, eax
jne 0x402d42
push 1
call fcn.0051add1
mov eax, dword [0x5d03d0]
add esp, 4
push eax
push dword [0x5d03cc]
call fcn.0051b456
add esp, 8
test eax, eax
je 0x402d5e
push eax
call fcn.0051ada4
add esp, 4
push 0
push 0x404cc0
push 0
push 0
mov dword [0x5d03cc], 0
mov dword [0x5d03d0], 0
call dword [sym.imp.USER32.dll_EnumDisplayMonitors]
push 0x5cf7f4
push 0
push 0x5b8c04
push 0
call dword [sym.imp.d2d1.dll_Ordinal_1]
test eax, eax
jne 0x402ba8
push 0x5cf81c
push 0x5b8c14
push eax
call dword [sym.imp.DWrite.dll_DWriteCreateFactory]
push 0x5cf824
push dword [0x5cf76c]
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [0x5cf830]
push dword [0x5cf82c]
push dword [0x5cf828]
push dword [0x5cf824]
push str.CLIENT_RECT_:__d___d____d___d
call fcn.00404cb0
mov ecx, dword [0x5cf82c]
add esp, 0x14
mov edx, dword [0x5cf830]
mov eax, dword [0x5cf76c]
mov dword [esp + 0x88], edx
lea edx, [esp + 0x80]
mov dword [esp + 0x80], eax
mov eax, dword [0x5cf7f4]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x8c], 0
movaps xmm0, xmmword [esp + 0x80]
movaps xmmword [esp + 0x80], xmm0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
movaps xmm0, xmmword [esp + 0x10]
push 0x5cf820
movaps xmmword [esp + 0x34], xmm0
push edx
mov dword [esp + 0x28], 0
lea edx, [esp + 0x38]
mov dword [esp + 0x2c], 0
movq xmm0, qword [esp + 0x28]
movq qword [esp + 0x48], xmm0
mov dword [esp + 0x50], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x38]
call fcn.00403360
mov ecx, 0x5c7778
mov eax, 0x5b8bfc
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402ec1
test dl, dl
je 0x402ebd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402ec1
add eax, 2
add ecx, 2
test dl, dl
jne 0x402ea1
xor eax, eax
jmp 0x402ec6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403012
cmp dword [0x5cfc54], eax
je 0x403012
push 0x404720
lea ecx, [esp + 0x84]
mov dword [0x5cf818], 1
mov dword [0x5cfcd8], 1
call fcn.004049a0
cmp dword [0x5d03c0], 0
jne 0x4031f6
mov ecx, dword [eax]
mov dword [0x5d03bc], ecx
mov ecx, dword [eax + 4]
mov dword [0x5d03c0], ecx
mov dword [eax], 0
mov dword [eax + 4], 0
cmp dword [esp + 0x84], 0
jne 0x4031f6
mov eax, dword [0x5d03c0]
test eax, eax
jne 0x402f50
push 1
call fcn.0051add1
mov eax, dword [0x5d03c0]
add esp, 4
push eax
push dword [0x5d03bc]
call fcn.0051b456
add esp, 8
test eax, eax
je 0x402f6c
push eax
call fcn.0051ada4
add esp, 4
push 0x404890
lea ecx, [esp + 0x84]
mov dword [0x5d03bc], 0
mov dword [0x5d03c0], 0
call fcn.004049a0
cmp dword [0x5d03b8], 0
jne 0x4031f6
mov ecx, dword [eax]
mov dword [0x5d03b4], ecx
mov ecx, dword [eax + 4]
mov dword [0x5d03b8], ecx
mov dword [eax], 0
mov dword [eax + 4], 0
cmp dword [esp + 0x84], 0
jne 0x4031f6
mov eax, dword [0x5d03b8]
test eax, eax
jne 0x402fe2
push 1
call fcn.0051add1
mov eax, dword [0x5d03b8]
add esp, 4
push eax
push dword [0x5d03b4]
call fcn.0051b456
add esp, 8
test eax, eax
je 0x402ffe
push eax
call fcn.0051ada4
add esp, 4
mov dword [0x5d03b4], 0
mov dword [0x5d03b8], 0
mov ecx, 0x5c7778
mov eax, 0x5b8c00
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403040
test dl, dl
je 0x40303c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403040
add eax, 2
add ecx, 2
test dl, dl
jne 0x403020
xor eax, eax
jmp 0x403045
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4030bb
cmp dword [0x5cfc50], eax
je 0x4030bb
push 0x4054b0
lea ecx, [esp + 0x84]
mov dword [0x5cf818], 2
call fcn.004049a0
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x403088
push 1
call fcn.0051add1
mov eax, dword [esp + 0x88]
add esp, 4
push eax
push dword [esp + 0x84]
call fcn.0051b456
add esp, 8
test eax, eax
je 0x4030a5
push eax
call fcn.0051ada4
add esp, 4
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
push 5
push dword [0x5cf76c]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x5cf76c]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
lea eax, [esp + 0x90]
push 0
push 0
xorps xmm0, xmm0
mov dword [esp + 0xb0], 0
push 0
push eax
movaps xmmword [esp + 0xa0], xmm0
movq qword [esp + 0xb0], xmm0
call esi
test eax, eax
je 0x403140
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x90]
push eax
call edi
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea eax, [esp + 0x9c]
push eax
call esi
test eax, eax
jne 0x403114
mov ecx, dword [0x5cfc50]
mov dword [0x5d03b0], 0
test ecx, ecx
je 0x403164
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x5cfc50], 0
mov ecx, dword [0x5cfb44]
test ecx, ecx
je 0x40317e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x5cfb44], 0
mov ecx, dword [0x5cfc54]
test ecx, ecx
je 0x403198
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x5cfc54], 0
mov ecx, dword [0x5cfc4c]
test ecx, ecx
je 0x4031b2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x5cfc4c], 0
mov eax, dword [0x5cf81c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x5cf7f4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x5cf820]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0x98]
pop edi
pop esi
xor ecx, esp
call fcn.00518e98
mov esp, ebp
pop ebp
ret 0x10
call fcn.00527aea
int3