Function at 0x40f410
Capabilities:
Create thread
Get local ipv4 addresses
Set console window title

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x465932
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x48b060]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x104
push 0x48d8b0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
dec eax
cmp eax, 0x103
ja 0x40fb92
push 0x48d8b0
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
test eax, eax
je 0x40fb92
mov al, byte [0x48d8b0]
xor ecx, ecx
mov byte [0x48d9b8], al
mov byte [0x48dac0], al
test al, al
je 0x40f4a0
cmp ecx, 0x104
jge 0x40f4a0
mov al, byte [ecx + 0x48d8b1]
inc ecx
mov byte [ecx + 0x48d9b8], al
mov byte [ecx + 0x48dac0], al
test al, al
jne 0x40f481
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendA]
push str.Settings.ini
push 0x48d9b8
call esi
test eax, eax
je 0x40fb92
push str.TouchLog.log
push 0x48dac0
call esi
test eax, eax
je 0x40fb92
push ecx
push 0xa
push 0x48dac0
mov ecx, 0x48bb24
call fcn.00409f40
test eax, eax
mov eax, dword [0x48bb20]
mov ecx, dword [eax + 4]
je 0x40f501
add ecx, 0x48bb20
xor edx, edx
mov eax, 4
cmp dword [ecx + 0x38], edx
cmovne eax, edx
jmp 0x40f519
add ecx, 0x48bb20
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push 0
push eax
call fcn.004030f0
mov edx, 0x4853f4
mov dword [0x48bbd0], 0x48bb20
mov ecx, 0x48bb20
mov byte [0x48bbd4], 0
call fcn.0040ad40
push 0x485e60
push str.INFO_:__App_Started
mov ecx, 0x48bbd0
mov byte [0x48bbd5], 1
call fcn.0040a9d0
mov ecx, eax
call fcn.0040a9d0
push 0x4853d4
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x40f5a4
push 0x485e60
mov byte [0x48bbd5], 1
call esi
push eax
push str.ERROR_:__Cant_set_title_with_error
mov ecx, 0x48bbd0
call fcn.0040a9d0
mov ecx, eax
call fcn.0040b220
mov ecx, eax
call fcn.0040a9d0
push 1
push 0x40f2f0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x40f5e1
push 0x485e60
mov byte [0x48bbd5], 1
call esi
push eax
push str.ERROR_:__Cant_set_handeler_with_error
mov ecx, 0x48bbd0
call fcn.0040a9d0
mov ecx, eax
call fcn.0040b220
mov ecx, eax
call fcn.0040a9d0
cmp dword [0x48ddf0], 0
je 0x40f5f1
mov al, 1
jmp 0x40f685
call fcn.00413510
mov dword [0x48ddf0], eax
test eax, eax
je 0x40f683
push eax
call fcn.004135a0
mov esi, eax
add esp, 4
cmp esi, 0x20000000
jne 0x40f61a
mov al, 1
jmp 0x40f685
mov eax, dword [0x48ddf0]
test eax, eax
je 0x40f641
push eax
call fcn.00413940
push dword [0x48ddf0]
call fcn.00413ad0
add esp, 8
mov dword [0x48ddf0], 0
push 0x485e60
push 0x40d860
push esi
push 0x40d880
push str.ERROR_:_Cant_Connect_to_VIGEM_with_error_0x
mov ecx, 0x48bbd0
mov byte [0x48bbd5], 1
call fcn.0040a9d0
mov ecx, eax
call fcn.0040d940
mov ecx, eax
call fcn.0040b0e0
mov ecx, eax
call fcn.0040d940
mov ecx, eax
call fcn.0040a9d0
xor al, al
sub esp, 0x1c
mov byte [0x48d870], al
mov esi, esp
lea eax, [ebp - 0x15]
mov dword [ebp - 0x1c], eax
push 8
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
call fcn.0040b960
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [esi], eax
mov ecx, 0x48d9b8
mov dword [ebp - 4], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0xf
mov byte [esi + 4], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f6f0
sub ecx, edx
push ecx
push 0x48d9b8
mov ecx, esi
call fcn.00408fa0
mov ecx, 0x48dbf0
mov dword [ebp - 4], 0xffffffff
call fcn.00403f20
mov edi, dword [0x48dc38]
xor ecx, ecx
mov eax, edi
mov dword [ebp - 0x14], edi
mov edx, 0x20c
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.004179b0
add esp, 0x20
mov dword [ebp - 0x24], eax
push 0x404480
push 0x404320
push edi
lea esi, [eax + 4]
mov dword [ebp - 4], 1
push 0x20c
push esi
mov dword [eax], edi
call fcn.00417c10
xorps xmm0, xmm0
mov dword [0x48d9b4], esi
movq qword [ebp - 0x2c], xmm0
mov dword [ebp - 4], 2
xor esi, esi
cmp byte [0x48dc3c], 0
mov dword [ebp - 0x24], esi
je 0x40f7eb
push 0x10
call fcn.00417460
mov dword [ebp - 0x14], eax
mov dword [eax], 0x48dbf0
mov ecx, dword [0x48dc38]
mov dword [eax + 4], ecx
mov ecx, dword [0x48d9b4]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x405890
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
push ecx
push esi
push eax
push 0x412140
push esi
push esi
call fcn.00420030
add esp, 0x1c
mov dword [ebp - 0x20], eax
test eax, eax
je 0x40fbb0
mov byte [ebp - 4], 2
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ebx
jmp 0x40f7ee
mov ebx, dword [ebp - 0x28]
mov edi, 3
cmp byte [0x48bb18], 0
je 0x40f808
call fcn.0040e1c0
mov byte [0x48bb18], 0
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x48d872], 0
je 0x40f904
mov eax, dword [0x48d874]
test eax, eax
jne 0x40fa14
test ebx, ebx
je 0x40f839
lea ecx, [ebp - 0x2c]
call fcn.0040cdd0
mov ebx, dword [ebp - 0x28]
mov eax, dword [0x48d9b4]
test eax, eax
je 0x40f872
push 0x404480
lea esi, [eax - 4]
mov byte [ebp - 4], 5
push dword [esi]
push 0x20c
push eax
call fcn.00417a40
imul eax, dword [esi], 0x20c
add eax, 4
push eax
push esi
call fcn.00417a20
add esp, 8
mov byte [ebp - 4], 2
mov eax, dword [0x48ddf0]
test eax, eax
je 0x40f899
push eax
call fcn.00413940
push dword [0x48ddf0]
call fcn.00413ad0
add esp, 8
mov dword [0x48ddf0], 0
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x485e60
push str.INFO_:__App_Stopped
mov ecx, 0x48bbd0
mov byte [0x48bbd5], 1
call fcn.0040a9d0
mov ecx, eax
call fcn.0040a9d0
mov ecx, 0x48bb24
call fcn.00408c40
test eax, eax
jne 0x40f8f7
mov eax, dword [0x48bb20]
push 0
mov ecx, dword [eax + 4]
xor eax, eax
add ecx, 0x48bb20
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.004030f0
test ebx, ebx
jne 0x40fbbe
jmp 0x40fb92
call fcn.0042f650
test eax, eax
je 0x40fa0f
call fcn.0042f43f
push eax
call fcn.0042f9c0
add esp, 4
cmp al, 0x73
jne 0x40f9d3
mov eax, dword [0x48d874]
cmp eax, 2
jne 0x40f94d
cmp dword [0x48dde8], 0
je 0x40fa14
mov dword [0x48dde8], 3
jmp 0x40fa14
test eax, eax
jne 0x40fa14
test ebx, ebx
je 0x40f964
lea ecx, [ebp - 0x2c]
call fcn.0040cdd0
mov ebx, dword [ebp - 0x28]
push 0x10
call fcn.00417460
mov dword [ebp - 0x14], eax
mov dword [eax], 0x48dbf0
mov ecx, dword [0x48dc38]
mov dword [eax + 4], ecx
mov ecx, dword [0x48d9b4]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0x405890
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
push ecx
push 0
push eax
push 0x412140
push 0
push 0
call fcn.00420030
add esp, 0x1c
mov dword [ebp - 0x20], eax
test eax, eax
je 0x40fbb0
mov byte [ebp - 4], 2
test ebx, ebx
jne 0x40fbbe
mov ebx, dword [ebp - 0x1c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ebx
jmp 0x40fa0f
cmp al, 0x69
jne 0x40f9f5
cmp byte [0x48d873], 0
mov byte [0x48bb18], 1
sete byte [0x48d873]
inc esi
mov dword [ebp - 0x24], esi
jmp 0x40f7f3
cmp al, 0x63
jne 0x40fa0f
mov eax, dword [0x48dde8]
test eax, eax
mov byte [0x48d872], 1
cmovne eax, edi
mov dword [0x48dde8], eax
mov eax, dword [0x48d874]
cmp byte [0x48bb18], 0
jne 0x40fb89
mov ecx, dword [0x48dde8]
cmp ecx, eax
je 0x40fa39
mov eax, ecx
mov byte [0x48bb18], 1
mov dword [0x48d874], eax
test eax, eax
je 0x40fa67
cmp byte [0x48dc4c], 0
je 0x40fa67
mov eax, dword [0x48dbcc]
sub eax, dword [0x48dbc8]
sar eax, 2
mov byte [0x48dc4c], 0
mov dword [0x48d87c], eax
mov byte [0x48bb18], 1
mov eax, 0x51eb851f
mov ecx, esi
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x32
sub ecx, eax
jne 0x40fb70
push 0x1388
or edi, 0xffffffff
mov dword [ebp - 0x14], 0x1388
call fcn.004302d0
mov esi, eax
add esp, 4
test esi, esi
je 0x40fb31
lea eax, [ebp - 0x14]
push eax
push esi
push 0
push 7
push 2
call dword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
test eax, eax
jne 0x40fae8
xor edi, edi
nop dword [eax]
cmp edi, 0xa
jge 0x40fb13
cmp dword [esi + 0xbc], 0
je 0x40fadf
mov eax, dword [esi + 0xb8]
mov eax, dword [eax + 4]
mov dword [edi*4 + 0x48d884], eax
inc edi
mov esi, dword [esi + 8]
test esi, esi
jne 0x40fac0
jmp 0x40fb13
push ecx
push str.__error_
push eax
push str.ERROR_:_Adapter_Address_throws__
mov ecx, 0x48bbd0
call fcn.0040a9d0
mov ecx, eax
call fcn.0040b220
mov ecx, eax
call fcn.0040a9d0
mov ecx, eax
call fcn.0040d5a0
xor eax, eax
mov dword [0x48d8ac], edi
xor ecx, ecx
test edi, edi
jle 0x40fb54
shr eax, 1
add eax, dword [ecx*4 + 0x48d884]
inc ecx
cmp ecx, edi
jl 0x40fb21
jmp 0x40fb54
push ecx
push str.ERROR_:_Cant_allocate_space_Ip_lists
mov ecx, 0x48bbd0
call fcn.0040a9d0
mov ecx, eax
call fcn.0040d5a0
mov dword [0x48d8ac], 0xffffffff
xor eax, eax
mov edi, 3
mov esi, dword [ebp - 0x24]
cmp dword [0x48d878], eax
je 0x40fb70
mov dword [0x48d878], eax
mov byte [0x48bb18], 1
mov eax, dword [0x48ddec]
cmp eax, dword [0x48d880]
je 0x40fb89
mov dword [0x48d880], eax
mov byte [0x48bb18], 1
inc esi
mov dword [ebp - 0x24], esi
jmp 0x40f7f3
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00417200
mov esp, ebp
pop ebp
ret
push 6
mov dword [ebp - 0x1c], 0
call fcn.00414620
call fcn.0042ac60
int3