Function at 0x4318a9
Capabilities:
Initialize winsock library
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1fc
mov eax, dword [0x6d93a8]
xor eax, esp
mov dword [esp + 0x1f8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x154
call fcn.004e4913
pop ecx
mov ecx, eax
call fcn.0041f5a4
xor ebx, ebx
mov dword [0x6e5184], eax
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
js 0x4323a6
lea eax, [esp + 0x70]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x4323a6
push esi
call fcn.0049391d
pop ecx
call fcn.0043162b
push 0xf
pop edi
push 0x6c2ba8
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
call fcn.004060b1
push ecx
push str.root_json_a1
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x43194b
mov eax, ebx
jmp 0x43194d
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov esi, eax
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
mov dword [esp], str.Initialize
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x28]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x58]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a2
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431a11
mov eax, ebx
jmp 0x431a13
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], 0x6c2c20
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a3
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431ad7
mov eax, ebx
jmp 0x431ad9
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], str.FinishK
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a4
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431b9d
mov eax, ebx
jmp 0x431b9f
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], str.FinishV
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a5
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431c63
mov eax, ebx
jmp 0x431c65
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], str.Utils
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a6
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431d29
mov eax, ebx
jmp 0x431d2b
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], str.Item
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a7
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431def
mov eax, ebx
jmp 0x431df1
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], str.State
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a8
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431eb5
mov eax, ebx
jmp 0x431eb7
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], 0x6c24b0
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_a9
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x431f7b
mov eax, ebx
jmp 0x431f7d
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], 0x6c3348
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_b1
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x432041
mov eax, ebx
jmp 0x432043
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], 0x6c2bac
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_b2
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x432107
mov eax, ebx
jmp 0x432109
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], fcn.00524556
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
push 0x6c2ba8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov byte [esp + 0x2c], bl
call fcn.004060b1
push ecx
push str.root_json_b3
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x4321cd
mov eax, ebx
jmp 0x4321cf
mov eax, dword [eax]
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], eax
call fcn.0040b066
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x44], bl
call fcn.004060b1
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x18]
call fcn.00413449
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov byte [esp + 0x5c], bl
mov dword [esp], 0x6c19ac
call fcn.004060b1
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00409503
push esi
mov ecx, dword [eax]
add ecx, 0x28
call fcn.004323d3
lea ecx, [esp + 0x58]
call fcn.004060fd
lea ecx, [esp + 0x14]
call fcn.00409827
lea ecx, [esp + 0x40]
call fcn.004060fd
lea ecx, [esp + 0x28]
call fcn.004060fd
call fcn.0041fc7e
test eax, eax
je 0x432332
push 0x518
call fcn.004e4913
pop ecx
mov ecx, eax
call fcn.0041cbc1
mov esi, eax
test esi, esi
je 0x4322e1
push ecx
push str.root_app
lea eax, [esp + 0x28]
push eax
call fcn.0040fafc
cmp dword [eax + 4], ebx
je 0x43229e
mov eax, ebx
jmp 0x4322a0
mov eax, dword [eax]
push ebx
push 0x42
push 0x156
push ebx
push ebx
push 0x60000
push 0x10cf0000
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
call fcn.0040b066
push eax
push ebx
mov ecx, esi
call fcn.0048b394
mov ecx, esi
call fcn.0048b23e
call fcn.00491ebf
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 0x14]
jmp 0x4322e6
call fcn.00491ebf
mov eax, dword [0x6e5184]
cmp dword [eax + 0xe0], ebx
jbe 0x432332
call fcn.00428530
mov ecx, dword [0x6e5184]
test eax, eax
jne 0x43232d
mov eax, dword [ecx + 0xf4]
cmp eax, 0xc8
je 0x432316
cmp eax, 0x190
jne 0x432326
mov eax, dword [ecx + 0xe0]
cmp eax, 4
je 0x43232d
cmp eax, 3
je 0x43232d
call fcn.004288eb
jmp 0x432332
call fcn.00428944
mov edi, dword [0x6e52b0]
mov eax, edi
mov esi, dword [0x6e52ac]
sub eax, esi
sar eax, 3
test eax, eax
jne 0x4323a0
mov esi, dword [0x6e5184]
test esi, esi
je 0x432367
mov ecx, esi
call fcn.0041f6ab
push 0x154
push esi
call fcn.004e4905
pop ecx
pop ecx
mov dword [0x6e5184], ebx
call dword [sym.imp.ole32.dll_CoUninitialize]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push str.Completed.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jmp 0x4323a9
mov ecx, dword [esi]
test ecx, ecx
je 0x4323c0
cmp byte [esi + 4], bl
je 0x432398
cmp byte [ecx + 0x6c], bl
jne 0x4323c0
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 8
cmp esi, edi
jne 0x432388
jmp 0x432349
or eax, 0xffffffff
mov ecx, dword [esp + 0x204]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e48e6
mov esp, ebp
pop ebp
ret 0x10
push 4
pop edx
lea ecx, [esp + 0x20]
call fcn.0041e4c8
push eax
call fcn.00477db1
int3