Function at 0x411270
Capabilities:
Create directory
Create thread
Delete file
Get file size
Initialize winsock library
Move file
Read file on windows
Resolve dns
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42a6ee
mov eax, dword fs:[0]
push eax
sub esp, 0xee4
mov eax, dword [0x4395ec]
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
mov ebx, ecx
mov edi, dword [ebp + 8]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x318], ax
lea eax, [ebp - 0x316]
push eax
mov dword [ebp - 0xec8], edi
call fcn.0041a0a0
add esp, 0xc
xor eax, eax
mov word [ebp - 0xd30], ax
push 0x40e
push eax
lea eax, [ebp - 0xd2e]
push eax
call fcn.0041a0a0
movzx eax, byte [edi + 2]
add esp, 0xc
cmp eax, 0x1b
ja case.0x4112f2.1
jmp dword [eax*4 + 0x412044]
cmp byte [edi + 4], 0
jne case.0x4112f2.1
cmp byte [edi], 0
je case.0x4112f2.1
lea esi, [ebx + 0x1278]
mov ecx, esi
call fcn.0040e1e0
movzx eax, byte [ebx + 0x814]
mov ecx, esi
push 0
push 0
push 0
push 5
push eax
push 0x478
push esi
jmp 0x41168c
mov al, byte [edi + 1]
test al, al
jne 0x411347
mov ecx, ebx
call fcn.00410110
mov al, byte [edi + 1]
mov byte [ebx + 0x814], al
jmp case.0x4112f2.1
mov al, byte [edi + 4]
test al, al
je case.0x4112f2.1
cmp dword [ebx + 0x1490], 0
je 0x411456
mov al, byte [edi + 5]
lea esi, [ebx + 0x1900]
push esi
lea ecx, [ebp - 0xef0]
mov byte [esi], al
push ecx
lea ecx, [ebx + 0x16f0]
call fcn.00412690
lea ecx, [ebx + 0x16f0]
mov eax, dword [eax]
cmp eax, dword [ecx]
je case.0x4112f2.1
push esi
call fcn.004125c0
lea ecx, [ebx + 0x1278]
mov eax, dword [eax]
mov dword [ebp - 0xec4], eax
movzx eax, byte [edi + 4]
push eax
lea eax, [edi + 5]
mov dword [ebp - 0xec8], 0
push eax
sub esp, 8
lea eax, [ebp - 0xd30]
push eax
call fcn.0040e060
lea esi, [ebp - 0xd30]
mov edi, eax
lea ecx, [esi + 2]
lea esp, [esp]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4113e0
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [ebp - 0xd30]
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
sub esi, ecx
push 0
sar esi, 1
call ebx
lea ecx, [esi + 1]
cmp ecx, eax
jb 0x41142e
push 0
push 0
push eax
lea eax, [ebp - 0x318]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xd30]
push eax
push 0
push 0
call ebx
push 0
lea eax, [ebp - 0xec8]
shr edi, 1
push eax
dec edi
lea eax, [ebp - 0x318]
push edi
push eax
mov eax, dword [ebp - 0xec4]
push dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp case.0x4112f2.1
cmp al, 1
mov al, byte [edi + 5]
jne 0x4114e6
lea esi, [ebx + 0x1900]
add ebx, 0x16f0
mov byte [esi], al
mov ecx, ebx
push esi
lea eax, [ebp - 0xedc]
push eax
call fcn.00412690
mov eax, dword [eax]
cmp eax, dword [ebx]
je 0x4114a5
push esi
mov ecx, ebx
call fcn.004125c0
mov ecx, dword [eax]
test ecx, ecx
je 0x411498
mov eax, dword [ecx]
push 1
call dword [eax]
push esi
mov ecx, ebx
call fcn.00412640
jmp case.0x4112f2.1
push 0x20
call fcn.0041626f
add esp, 4
test eax, eax
je 0x4114d0
mov ecx, eax
call fcn.0040efc0
mov edi, eax
mov ecx, ebx
mov al, byte [esi]
push esi
mov byte [edi + 8], al
call fcn.004125c0
mov dword [eax], edi
jmp case.0x4112f2.1
mov al, byte [esi]
xor edi, edi
push esi
mov ecx, ebx
mov byte [edi + 8], al
call fcn.004125c0
mov dword [eax], edi
jmp case.0x4112f2.1
push 0x20
mov byte [ebx + 0x1900], al
call fcn.0041626f
add esp, 4
test eax, eax
je 0x411508
push dword [edi + 6]
mov ecx, eax
call fcn.0040f080
mov esi, eax
jmp 0x41150a
xor esi, esi
mov al, byte [ebx + 0x1900]
lea ecx, [ebx + 0x1900]
push ecx
lea ecx, [ebx + 0x16f0]
mov byte [esi + 8], al
call fcn.004125c0
mov dword [eax], esi
mov ecx, dword [ebx + 0x1904]
test ecx, ecx
je case.0x4112f2.1
mov edx, dword [ebx + 0x1908]
test edx, edx
je case.0x4112f2.1
push dword [edi + 6]
call fcn.0040ed90
add esp, 4
push dword [ebx + 0x1904]
call fcn.00415bcd
add esp, 4
mov dword [ebx + 0x1904], 0
mov dword [ebx + 0x1908], 0
jmp case.0x4112f2.1
cmp byte [ebx + 0x838], 0
jne case.0x4112f2.1
mov al, byte [edi + 1]
mov byte [ebx + 0x838], al
jmp case.0x4112f2.1
lea esi, [ebx + 0x1494]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
lea ecx, [ebx + 0x1480]
call fcn.0040e610
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x4112f2.1
mov al, byte [edi + 5]
lea esi, [ebx + 0x1900]
lea ecx, [ebp - 0x318]
mov byte [esi], al
call fcn.004136e0
movzx ecx, byte [ebx + 0x814]
push 1
push esi
push 0
push 8
push ecx
push eax
lea eax, [ebp - 0x318]
push eax
jmp 0x411686
mov al, byte [edi + 5]
lea ecx, [edi + 5]
mov byte [ebx + 0x1900], al
movzx eax, byte [edi + 4]
push eax
push ecx
sub esp, 8
lea eax, [ebx + 0x16f8]
lea ecx, [ebx + 0x1278]
push eax
call fcn.0040e060
lea eax, [ebp - 0xecc]
push eax
push 0
push ebx
push 0x4133f0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp case.0x4112f2.1
mov al, byte [edi + 5]
lea ecx, [edi + 5]
mov byte [ebx + 0x1900], al
lea esi, [ebx + 0x16f8]
movzx eax, byte [edi + 4]
push eax
push ecx
sub esp, 8
lea ecx, [ebx + 0x1278]
push esi
call fcn.0040e060
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp eax, 1
jne case.0x4112f2.1
push eax
lea eax, [ebx + 0x1900]
push eax
push 0
push 0xe
movzx eax, byte [ebx + 0x814]
push eax
push 0
push 0
lea ecx, [ebx + 0x1278]
call fcn.0040ddd0
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.00415b03
mov esp, ebp
pop ebp
ret 8
mov al, byte [edi + 5]
lea edx, [edi + 5]
mov byte [ebx + 0x1900], al
lea esi, [ebx + 0x16f8]
movzx eax, byte [edi + 4]
lea ecx, [ebx + 0x1278]
push eax
push edx
sub esp, 8
push esi
call fcn.0040e060
mov ecx, esi
call fcn.004137b0
jmp 0x411669
mov al, byte [edi + 5]
lea ecx, [edi + 5]
mov byte [ebx + 0x1900], al
movzx eax, byte [edi + 4]
push eax
push ecx
sub esp, 8
lea eax, [ebp - 0xd30]
lea ecx, [ebx + 0x1278]
push eax
call fcn.0040e060
lea eax, [ebx + 0x16f8]
mov ecx, 0x82
mov edi, eax
lea esi, [ebp - 0xd30]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x82
lea esi, [ebp - 0xb28]
lea edi, [ebp - 0x318]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x318]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
jmp 0x411669
mov al, byte [edi + 5]
lea ecx, [edi + 5]
mov byte [ebx + 0x1900], al
lea esi, [ebx + 0x16f8]
movzx eax, byte [edi + 4]
push eax
push ecx
sub esp, 8
lea ecx, [ebx + 0x1278]
push esi
call fcn.0040e060
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x411669
cmp dword [ebx + 0x16e4], 0
jne 0x411794
push 0x424
call fcn.0041626f
add esp, 4
mov dword [ebx + 0x16e4], eax
push 0x424
push 0
push dword [ebx + 0x16e4]
call fcn.0041a0a0
add esp, 0xc
cmp byte [edi + 4], 0
je 0x411845
mov al, byte [edi + 5]
lea ecx, [edi + 5]
lea esi, [ebx + 0x1900]
mov byte [esi], al
movzx eax, byte [edi + 4]
lea edi, [ebx + 0x1278]
push eax
push ecx
sub esp, 8
mov ecx, edi
push dword [ebx + 0x16e4]
call fcn.0040e060
push ecx
mov ecx, edi
call fcn.0040d8c0
movzx eax, byte [ebx + 0x814]
mov ecx, edi
push 1
push esi
push 0
push 0x10
push eax
push 0x424
push dword [ebx + 0x16e4]
call fcn.0040ddd0
mov eax, dword [ebx + 0x16e4]
cmp byte [eax + 2], 1
jne case.0x4112f2.1
cmp byte [eax + 3], 0
je case.0x4112f2.1
lea eax, [ebp - 0xecc]
push eax
push 0
push edi
push 0x40da10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x4112f2.1
lea ecx, [ebx + 0x1278]
call fcn.0040d880
jmp case.0x4112f2.1
mov al, byte [edi + 5]
push 0x1f00
mov byte [ebx + 0x1900], al
call fcn.00415a62
add esp, 4
mov dword [ebp - 0xec8], eax
test eax, eax
je case.0x4112f2.1
movzx ecx, byte [edi + 4]
push ecx
lea ecx, [edi + 5]
push ecx
sub esp, 8
lea ecx, [ebx + 0x1278]
push eax
call fcn.0040e060
mov edi, dword [ebp - 0xec8]
lea ecx, [ebx + 0x1278]
push eax
push edi
call fcn.0040dc10
push edi
call fcn.00415bcd
add esp, 4
jmp case.0x4112f2.1
imul eax, dword [edi + 5], 0x3e8
lea ecx, [ebx + 0x127c]
push 4
push ecx
push 0
push 0x12
mov dword [ecx], eax
jmp 0x41167a
mov ecx, dword [ebx + 0x1904]
test ecx, ecx
je 0x41190d
mov edx, dword [ebx + 0x1908]
test edx, edx
je 0x41190d
push 0
call fcn.0040ed90
add esp, 4
push dword [ebx + 0x1904]
call fcn.00415bcd
add esp, 4
mov dword [ebx + 0x1904], 0
mov dword [ebx + 0x1908], 0
push 0x1080
call fcn.00415a62
add esp, 4
mov dword [ebx + 0x1904], eax
test eax, eax
je case.0x4112f2.1
mov ecx, eax
call fcn.0040eb50
mov dword [ebx + 0x1908], eax
test eax, eax
je 0x41154e
imul eax, eax, 0x84
push eax
call fcn.00415a62
mov esi, eax
add esp, 4
test esi, esi
je 0x41154e
imul ecx, dword [ebx + 0x1908], 0x84
push ecx
push dword [ebx + 0x1904]
push esi
call fcn.00417590
movzx eax, byte [edi + 2]
add esp, 0xc
push 0
push 0
push 0
push eax
movzx eax, byte [ebx + 0x814]
push eax
imul eax, dword [ebx + 0x1908], 0x84
push eax
jmp 0x411eac
cmp byte [edi + 4], 4
jne case.0x4112f2.21
xor eax, eax
push 0x3fe
push eax
mov word [ebp - 0x920], ax
lea eax, [ebp - 0x91e]
push eax
call fcn.0041a0a0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x520], ax
push 0x206
push eax
lea eax, [ebp - 0x51e]
push eax
call fcn.0041a0a0
lea ecx, [ebx + 0x1914]
add esp, 0xc
mov edx, ecx
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4119e4
sub edx, esi
sar edx, 1
jne 0x411a0b
push 0x104
lea eax, [ebp - 0x520]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
jmp 0x411a23
lea edx, [ebp - 0x520]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x411a13
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x520]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xec4], eax
cmp eax, 0xffffffff
je case.0x4112f2.21
lea ecx, [ebp - 0xed4]
mov dword [ebp - 0xed4], 0
push ecx
push eax
mov dword [ebp - 0xed0], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
push esi
call fcn.00415a62
add esp, 4
mov dword [ebp - 0xed8], eax
test eax, eax
je 0x411c8e
push 0
push 0
push 0
push dword [ebp - 0xec4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0xed4]
push eax
push esi
push dword [ebp - 0xed8]
push dword [ebp - 0xec4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x411c72
cmp esi, dword [ebp - 0xed4]
jne 0x411c72
cmp dword [0x43a7ac], 0
jne 0x411b7d
xor ecx, ecx
lea ecx, [ecx]
movzx eax, word [ecx + str..key]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x922], ax
test ax, ax
jne 0x411ae0
lea edi, [ebp - 0x920]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x411b00
mov eax, dword [0x435518]
lea edx, [ebp - 0x520]
mov dword [edi], eax
mov esi, edx
jmp 0x411b20
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x411b20
lea edi, [ebp - 0x920]
sub edx, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x411b36
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x920]
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
lea edi, [edi + 2]
test cx, cx
jne 0x411b60
push dword [ebp - 0xed4]
mov edx, dword [ebp - 0xed8]
jmp 0x411c48
mov eax, dword [ebp - 0xed8]
mov ecx, dword [eax + esi - 8]
lea edi, [eax + 4]
push dword [eax + esi - 4]
mov dword [ebp - 0xed0], ecx
mov edx, ecx
mov ecx, edi
mov dword [ebp - 0xecc], edi
call fcn.0040d360
add esp, 4
xor ecx, ecx
jmp 0x411bb0
movzx eax, word [ecx + str..key]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x922], ax
test ax, ax
jne 0x411bb0
lea edi, [ebp - 0x920]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x411bd0
mov eax, dword [0x435518]
lea edx, [ebp - 0x520]
mov dword [edi], eax
mov esi, edx
jmp 0x411bf0
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x411bf0
lea edi, [ebp - 0x920]
sub edx, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x411c06
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x920]
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
lea edi, [edi + 2]
test cx, cx
jne 0x411c30
push dword [ebp - 0xed0]
mov edx, dword [ebp - 0xecc]
mov dword [edi], eax
lea eax, [ebp - 0x920]
mov edi, dword [ebp - 0xec8]
push eax
mov ecx, dword [edi + 5]
call fcn.0040bac0
push dword [edi + 5]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xed0], eax
call esi
jmp 0x411c78
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xed0]
call esi
push dword [ebp - 0xed8]
call fcn.00415bcd
add esp, 4
push dword [ebp - 0xec4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebx + 0x1904]
test ecx, ecx
je case.0x4112f2.1
mov edx, dword [ebx + 0x1908]
test edx, edx
je case.0x4112f2.1
push dword [edi + 5]
jmp 0x411546
push 0x400
call fcn.00415a62
add esp, 4
mov byte [ebp - 0x110], 0
mov esi, eax
lea eax, [ebp - 0x10f]
mov dword [ebp - 0xec4], esi
push 0xff
push 0
push eax
call fcn.0041a0a0
add esp, 0xc
mov eax, 2
mov word [ebp - 0xeec], ax
test esi, esi
je case.0x4112f2.1
movzx eax, byte [edi + 4]
lea ecx, [edi + 5]
push eax
push ecx
sub esp, 8
lea ecx, [ebx + 0x1278]
push esi
call fcn.0040e060
movsx ecx, byte [esi + 3]
mov dword [ebp - 0xed0], eax
dec ecx
je 0x411dee
sub ecx, 2
jne 0x411eb8
movsx eax, byte [esi + 4]
mov dword [ebp - 0xec8], eax
push 0x100
push ecx
movzx eax, word [eax + esi + 5]
mov dword [ebp - 0xecc], eax
lea eax, [ebp - 0x110]
push eax
call fcn.0041a0a0
add esp, 0xc
lea eax, [esi + 5]
push dword [ebp - 0xec8]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00417590
mov eax, dword [ebp - 0xec8]
add esp, 0xc
cmp eax, 0x100
jae 0x411de9
mov byte [ebp + eax - 0x110], 0
mov eax, dword [ebp - 0xecc]
mov word [ebp - 0xeea], ax
lea eax, [ebp - 0xec0]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x411dc5
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x411dd4
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov dword [ebp - 0xee8], 0
jmp 0x411e60
mov eax, dword [eax + 0xc]
mov esi, dword [eax]
mov esi, dword [esi]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov dword [ebp - 0xee8], esi
jmp 0x411e5a
call fcn.00416801
cmp eax, 0xa
jne 0x411eb8
movzx esi, word [esi + 8]
lea eax, [ebp - 0x110]
push 0x100
push 0
push eax
call fcn.0041a0a0
mov ecx, dword [ebp - 0xec4]
add esp, 0xc
movzx eax, byte [ecx + 7]
push eax
movzx eax, byte [ecx + 6]
push eax
movzx eax, byte [ecx + 5]
push eax
movzx eax, byte [ecx + 4]
push eax
lea eax, [ebp - 0x110]
push str._d._d._d._d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
mov word [ebp - 0xeea], si
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0xee8], eax
mov esi, dword [ebp - 0xec4]
movdqu xmm0, xmmword [ebp - 0xeec]
mov ecx, dword [ebx + 0x16e8]
sub esp, 0x10
mov eax, esp
movdqu xmmword [eax], xmm0
lea eax, [ebx + 0x1278]
push eax
push dword [edi + 5]
call fcn.0040bea0
neg eax
push 4
sbb al, al
and al, 0xfe
add al, 2
mov byte [esi + 1], al
lea eax, [edi + 5]
push eax
movzx eax, byte [edi + 2]
push 0
push eax
movzx eax, byte [ebx + 0x814]
push eax
push dword [ebp - 0xed0]
push esi
lea ecx, [ebx + 0x1278]
call fcn.0040ddd0
push esi
call fcn.00415bcd
add esp, 4
jmp case.0x4112f2.1
cmp byte [edi + 4], 0
jne case.0x4112f2.1
mov eax, dword [ebx + 0x16e8]
test eax, eax
je 0x411f0b
mov dword [eax + 0x20], 0
mov ecx, dword [ebx + 0x16e8]
call fcn.0040bdd0
mov ecx, dword [ebx + 0x16e8]
test ecx, ecx
je 0x411efc
push ecx
call fcn.0040d810
mov dword [ebx + 0x16e8], 0
jmp case.0x4112f2.1
push 0x30
call fcn.0041626f
add esp, 4
mov dword [ebp - 0xecc], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x411f2f
mov ecx, eax
call fcn.0040bb80
jmp 0x411f31
xor eax, eax
mov dword [ebx + 0x16e8], eax
mov dword [eax + 0x20], 1
mov ecx, dword [ebx + 0x16e8]
mov al, byte [ebx + 0x814]
mov byte [ecx + 0x2c], al
jmp case.0x4112f2.1
push 0x400
call fcn.00415a62
mov esi, eax
add esp, 4
test esi, esi
je case.0x4112f2.1
movzx ecx, byte [edi + 4]
lea eax, [edi + 5]
push ecx
push eax
sub esp, 8
mov dword [ebp - 0xecc], eax
lea ecx, [ebx + 0x1278]
push esi
call fcn.0040e060
mov ecx, dword [ebx + 0x16e8]
mov edi, eax
test ecx, ecx
je 0x411fd2
cmp dword [ecx + 0x20], 0
je 0x411fd2
mov eax, dword [ebp - 0xecc]
push ecx
push dword [eax]
call fcn.0040bd30
cmp eax, 0xffffffff
je 0x411fd2
test edi, edi
jle 0x411fcb
push edi
mov edx, esi
mov ecx, eax
call fcn.0040d050
add esp, 4
push esi
call fcn.00415bcd
add esp, 4
jmp case.0x4112f2.1
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
push esi
call fcn.00415bcd
add esp, 4
jmp case.0x4112f2.1
mov ecx, ebx
call fcn.00410110
cmp dword [ebx + 0x1260], 0
je 0x412032
mov eax, dword [ebx + 0x1274]
mov dword [ebx + 0x1260], 0
cmp eax, 0xffffffff
je 0x412032
push 0xbb8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebx + 0x1274]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebx + 0x83c]
mov dword [ebx + 0x1274], 0xffffffff
call fcn.00414a20
push 4
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, 1
jmp 0x411693