Function at 0x401715
Capabilities:
Initialize winsock library
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1d4
mov eax, dword [0x407004]
xor eax, esp
mov dword [esp + 0x1d0], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
push ebx
push esi
push edi
push ecx
push ecx
push 1
mov esi, ecx
mov dword [esp + 0x28], eax
push ecx
mov dword [esp + 0x38], ecx
mov ebx, 0xff
mov dword [esp + 0x34], ecx
mov edi, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x27], cl
call dword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapSetInformation]
xor ecx, ecx
push ecx
mov dword [0x407cd4], ecx
call dword [sym.imp.api_ms_win_core_localization_l1_2_0.dll_SetThreadUILanguage]
push 1
call fcn.00406139
pop ecx
mov ecx, eax
call fcn.00404662
push 2
call fcn.00406139
pop ecx
mov ecx, eax
call fcn.00404662
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dword [0x407f00], eax
lea eax, [esp + 0x48]
push eax
push 0x101
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x4017f2
push eax
push dword [0x407f00]
push 0x2715
push 2
call fcn.00406139
pop ecx
push eax
call fcn.0040485e
add esp, 0x10
push 1
call dword [sym.imp.msvcrt.dll_exit]
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
cmp dword [ebp + 8], eax
jle 0x401b45
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + eax*4]
test edi, edi
je 0x401900
push esi
call dword [sym.imp.msvcrt.dll__strupr]
mov edx, dword [esp + 0x1c]
mov esi, 0x401134
mov eax, dword [esp + 0x20]
pop ecx
xor ecx, ecx
mov edx, dword [eax + edx*4]
movzx eax, byte [edx + ecx]
cmp al, byte [esi + ecx]
jne 0x401842
inc ecx
cmp ecx, 4
jne 0x40182b
xor ebx, ebx
inc ebx
jmp 0x4018f9
mov esi, 0x401138
xor ecx, ecx
movzx eax, byte [edx + ecx]
cmp al, byte [esi + ecx]
jne 0x40185c
inc ecx
cmp ecx, 6
jne 0x401849
push 0x10
jmp 0x4018d9
mov esi, 0x401140
xor ecx, ecx
movzx eax, byte [edx + ecx]
cmp al, byte [esi + ecx]
jne 0x401876
inc ecx
cmp ecx, 4
jne 0x401863
push 2
jmp 0x4018d9
mov esi, 0x401144
xor ecx, ecx
movzx eax, byte [edx + ecx]
cmp al, byte [esi + ecx]
jne 0x401890
inc ecx
cmp ecx, 6
jne 0x40187d
push 0x20
jmp 0x4018d9
cmp byte [edx], 0x49
jne 0x4018a7
cmp byte [edx + 1], 0x50
jne 0x4018a7
movzx eax, byte [edx + 2]
test al, al
jne 0x4018a7
push 4
jmp 0x4018d9
mov esi, 0x40114c
xor ecx, ecx
movzx eax, byte [edx + ecx]
cmp al, byte [esi + ecx]
jne 0x4018c1
inc ecx
cmp ecx, 5
jne 0x4018ae
push 0x40
jmp 0x4018d9
mov esi, 0x401154
xor ecx, ecx
movzx eax, byte [edx + ecx]
cmp al, byte [esi + ecx]
jne 0x4018dc
inc ecx
cmp ecx, 5
jne 0x4018c8
push 8
pop ebx
jmp 0x4018f9
mov esi, 0x40115c
xor ecx, ecx
movzx eax, byte [edx + ecx]
cmp al, byte [esi + ecx]
jne 0x401c83
inc ecx
cmp ecx, 7
jne 0x4018e3
lea ebx, [ecx + 0x79]
xor edi, edi
jmp 0x401ad3
mov al, byte [esi]
cmp al, 0x2d
je 0x401937
cmp al, 0x2f
je 0x401937
cmp dword [esp + 0x3c], 0
jne 0x401c83
lea eax, [esp + 0x3c]
push eax
push 0x401164
push esi
call dword [sym.imp.msvcrt.dll_sscanf_s]
add esp, 0xc
cmp eax, 1
jne 0x401c83
jmp 0x401ad3
inc esi
mov al, byte [esi]
test al, al
je 0x401ad7
movsx eax, al
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x41
jne 0x40195f
mov dword [esp + 0x24], 1
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x42
jne 0x40197e
or dword [esp + 0x10], 8
mov byte [esp + 0x17], 1
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x45
jne 0x40199b
mov dword [esp + 0x2c], 1
jmp 0x401a37
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x46
jne 0x4019b8
mov dword [esp + 0x38], 1
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x4e
jne 0x4019d2
or dword [esp + 0x10], 1
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x4f
jne 0x4019ec
or dword [esp + 0x10], 2
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x54
jne 0x401a06
or dword [esp + 0x10], 4
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x59
jne 0x401a20
or dword [esp + 0x10], 0x20
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x53
jne 0x401a41
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
mov ebx, 0xff
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x50
jne 0x401a5c
xor ecx, ecx
inc ecx
mov dword [esp + 0x40], ecx
mov edi, ecx
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x52
jne 0x401a76
mov dword [esp + 0x30], 1
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x56
jne 0x401a8f
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x58
jne 0x401aa9
mov dword [esp + 0x34], 1
jmp 0x401ac8
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x51
jne 0x401c83
xor eax, eax
inc eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], eax
inc esi
mov al, byte [esi]
test al, al
jne 0x401942
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [ebp + 8]
jl 0x401806
cmp byte [esp + 0x17], 0
je 0x401b41
call fcn.0040592d
test al, al
jne 0x401b41
and dword [esp + 0x18], 0
push 1
call fcn.00406139
pop ecx
xor ecx, ecx
mov esi, eax
push ecx
push ecx
lea eax, [esp + 0x20]
push eax
push ecx
push 0x2e4
push ecx
push 0x1100
call dword [sym.imp.api_ms_win_core_localization_l1_2_0.dll_FormatMessageW]
test eax, eax
je 0x401b32
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.00404724
push dword [esp + 0x18]
call dword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
jmp 0x4017ea
mov esi, dword [esp + 0x10]
call fcn.00404945
test eax, eax
je 0x401b6a
push eax
push 0x2773
push 2
call fcn.00406139
pop ecx
push eax
call fcn.0040485e
add esp, 0xc
jmp 0x4017ea
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x28]
je 0x401b7c
mov ecx, edi
call fcn.00401f81
mov eax, dword [esp + 0x20]
test eax, eax
je 0x401bf7
test bl, 4
je 0x401b93
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.0040204a
test bl, 0x40
je 0x401ba2
push 0xa
mov edx, edi
pop ecx
call fcn.0040204a
test bl, 8
je 0x401baf
push 5
pop ecx
call fcn.004020f2
test bl, bl
jns 0x401bbb
push 0xf
pop ecx
call fcn.004020f2
test bl, 1
je 0x401bca
push 6
mov edx, edi
pop ecx
call fcn.00402083
test bl, 0x10
je 0x401bd9
push 0xb
mov edx, edi
pop ecx
call fcn.00402083
test bl, 2
je 0x401be6
push 8
pop ecx
call fcn.004020bc
test bl, 0x20
je 0x401bf3
push 0xd
pop ecx
call fcn.004020bc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x401c04
test bl, 0x33
jne 0x401c1b
cmp dword [esp + 0x2c], 0
jne 0x401c2f
test eax, eax
jne 0x401c2f
cmp dword [esp + 0x30], eax
jne 0x401c36
cmp dword [esp + 0x34], eax
jne 0x401c42
push dword [esp + 0x38]
mov edx, ebx
push dword [esp + 0x48]
push dword [esp + 0x2c]
push esi
call fcn.00402167
cmp dword [esp + 0x30], 0
je 0x401c3b
call fcn.00402812
cmp dword [esp + 0x34], 0
je 0x401c52
push dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ecx, esi
push edi
call fcn.0040289d
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x401c6c
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_Sleep]
jmp 0x401b6a
mov ecx, dword [esp + 0x1dc]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00405c20
mov esp, ebp
pop ebp
ret
call fcn.0040450b
int3