Function at 0x41014c
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff98c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x674], ebx
mov dword [ebp - 0x670], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x4107db
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], 0x103
mov dword [ebp - 0x44], 0xffffffff
mov byte [ebp - 0x55], 0
lea edx, [ebp - 0x38]
mov al, 1
call fcn.0040b840
mov ebx, eax
test ebx, ebx
je 0x410788
mov eax, dword [0x412bb8]
mov ecx, dword [ebp - 0x38]
mov edx, ebx
call fcn.0040fe08
mov dword [ebp - 0x24], eax
lea edx, [ebp - 0x48]
imul eax, dword [ebp - 0x10], 0x274
call fcn.0040b948
mov edi, eax
test edi, edi
je 0x410788
imul edx, dword [ebp - 0x10], 0x274
mov eax, edi
call fcn.00408c98
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x10]
dec eax
test eax, eax
jl 0x41041d
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x38]
dec eax
test eax, eax
jl 0x410411
inc eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x50]
mov eax, dword [eax + edx*4]
imul esi, dword [ebp - 0x54], 0x9d
cmp eax, dword [ebx + esi*4 + 0x24]
jne 0x410405
cmp dword [ebx + esi*4 + 0x28], 6
jge 0x410411
imul eax, dword [ebp - 0x40], 0x9d
lea eax, [edi + eax*4]
lea edx, [ebx + esi*4]
mov ecx, 0x274
call fcn.00408c8c
lea edx, [ebx + esi*4]
lea eax, [ebp - 0x2d4]
mov ecx, 0x274
call fcn.00408c8c
lea eax, [ebp - 0x670]
lea edx, [ebx + esi*4 + 0x74]
mov ecx, pe_nt_image_headers32
call fcn.00404438
mov eax, dword [ebp - 0x670]
lea edx, [ebp - 4]
call fcn.0040ad78
mov eax, dword [ebp - 4]
mov edx, 0x4107f4
call fcn.00404554
jne 0x4102c2
imul eax, dword [ebp - 0x40], 0x9d
lea eax, [edi + eax*4 + 0x74]
mov edx, 0x41080c
mov ecx, 0x1b
call fcn.0040ae00
jmp 0x410316
mov eax, dword [ebp - 4]
mov edx, 0x41084c
call fcn.00404554
jne 0x4102ed
imul eax, dword [ebp - 0x40], 0x9d
lea eax, [edi + eax*4 + 0x74]
mov edx, 0x410864
mov ecx, 0x1b
call fcn.0040ae00
jmp 0x410316
mov eax, dword [ebp - 4]
mov edx, 0x4108a4
call fcn.00404554
jne 0x410316
imul eax, dword [ebp - 0x40], 0x9d
lea eax, [edi + eax*4 + 0x74]
mov edx, 0x4108bc
mov ecx, 0x1b
call fcn.0040ae00
lea eax, [ebp - 0x674]
imul edx, dword [ebp - 0x40], 0x9d
lea edx, [edi + edx*4 + 0x74]
mov ecx, pe_nt_image_headers32
call fcn.00404438
cmp dword [ebp - 0x674], 0
je 0x410405
cmp dword [ebx + esi*4 + 0x28], 2
jl 0x4103d2
imul eax, dword [ebp - 0x54], 0x9d
mov esi, dword [ebx + eax*4 + 0x28]
sub esi, 2
cmp esi, 0
jl 0x4103d2
imul eax, dword [ebp - 0x54], 0x9d
lea eax, [ebx + eax*4]
mov ecx, dword [eax + esi*4 + 0x2c]
mov edx, dword [ebp - 0x38]
mov eax, ebx
call fcn.0040fe20
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x4103cc
lea edx, [esi + 1]
imul eax, dword [ebp - 0x54], 0x9d
lea eax, [ebx + eax*4]
xor ecx, ecx
call fcn.0040fe68
mov eax, dword [ebp - 0x40]
inc eax
imul edx, dword [ebp - 0x54], 0x9d
mov dword [ebx + edx*4 + 0x70], eax
imul eax, dword [ebp - 0x40], 0x9d
lea eax, [edi + eax*4]
lea edx, [esi + 1]
mov ecx, dword [ebp - 0x24]
call fcn.0040fe8c
imul eax, dword [ebp - 0x40], 0x9d
or dword [edi + eax*4], 0x20000
mov dword [ebp - 0x28], 0xffffffff
jmp 0x4103d2
dec esi
cmp esi, 0xffffffff
jne 0x41035c
cmp dword [ebp - 0x2c], 1
sbb eax, eax
inc eax
cmp al, 1
je 0x410402
imul esi, dword [ebp - 0x40], 0x9d
lea eax, [edi + esi*4]
mov ecx, dword [ebp - 0x24]
xor edx, edx
call fcn.0040fe68
mov eax, dword [ebp - 0x2b0]
mov dword [edi + esi*4 + 0x30], eax
or dword [edi + esi*4], 0x20000
inc dword [ebp - 0x40]
inc dword [ebp - 0x54]
dec dword [ebp - 0x60]
jne 0x410226
inc dword [ebp - 0x50]
dec dword [ebp - 0x5c]
jne 0x41020f
mov eax, dword [ebp - 0x10]
dec eax
test eax, eax
jl 0x41046e
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 0
imul esi, dword [ebp - 0x50], 0x9d
lea eax, [edi + esi*4 + 0x14]
push eax
call sub.rpcrt4.dll_UuidCreate
test eax, eax
je 0x41044b
mov byte [ebp - 0x55], 1
jmp 0x41046e
push 1
lea ecx, [edi + esi*4]
lea eax, [edi + esi*4 + 0x14]
mov edx, dword [ebp - 8]
call fcn.0041012c
test eax, eax
je 0x410466
mov byte [ebp - 0x55], 1
jmp 0x41046e
inc dword [ebp - 0x50]
dec dword [ebp - 0x5c]
jne 0x410430
cmp byte [ebp - 0x55], 0
jne 0x410788
cmp dword [ebp - 0x28], 0
je 0x410775
lea edx, [ebp - 0x3c]
mov al, 1
call fcn.0040b840
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x410788
mov eax, dword [ebp - 0x10]
dec eax
test eax, eax
jl 0x4104d5
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 0
imul eax, dword [ebp - 0x50], 0x9d
lea eax, [edi + eax*4 + 0x14]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x18]
call fcn.0040fe08
imul edx, dword [ebp - 0x50], 0x9d
mov dword [edi + edx*4 + 0x24], eax
inc dword [ebp - 0x50]
dec dword [ebp - 0x5c]
jne 0x4104ac
mov eax, dword [ebp - 0x38]
dec eax
test eax, eax
jl 0x4105a8
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 0
imul eax, dword [ebp - 0x50], 0x9d
cmp dword [ebx + eax*4 + 0x70], 0
je 0x41059c
imul eax, dword [ebp - 0x50], 0x9d
mov eax, dword [ebx + eax*4 + 0x28]
dec eax
test eax, eax
jl 0x410554
inc eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], 0
imul eax, dword [ebp - 0x50], 0x9d
lea edx, [ebx + eax*4]
mov ecx, dword [ebp - 0x54]
cmp dword [edx + ecx*4 + 0x2c], 0
jne 0x41054c
imul edx, dword [ebx + eax*4 + 0x70], 0x9d
mov edx, dword [edi + edx*4 - 0x250]
lea ecx, [ebx + eax*4]
mov esi, dword [ebp - 0x54]
mov dword [ecx + esi*4 + 0x2c], edx
xor edx, edx
mov dword [ebx + eax*4 + 0x70], edx
inc dword [ebp - 0x54]
dec dword [ebp - 0x60]
jne 0x410519
mov dword [ebp - 0x34], 0x103
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x4dc]
push eax
imul esi, dword [ebp - 0x50], 0x9d
lea eax, [ebx + esi*4 + 0x14]
push eax
call sub.ws2_32.dll_WSCGetProviderPath
inc eax
je 0x4105a8
lea eax, [ebx + esi*4]
push eax
push 1
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x4dc]
lea edx, [ebx + esi*4 + 0x14]
mov al, 1
call fcn.0040fec4
inc eax
je 0x4105a8
inc dword [ebp - 0x50]
dec dword [ebp - 0x5c]
jne 0x4104ec
mov eax, ebx
call fcn.0040b93c
mov eax, dword [ebp - 0x18]
call fcn.0040b93c
call sub.ws2_32.dll_WSACleanup
lea eax, [ebp - 0x66c]
push eax
mov dl, 2
mov al, 2
call fcn.00408b70
push eax
call sub.ws2_32.dll_WSAStartup
lea edx, [ebp - 0x38]
mov al, 1
call fcn.0040b840
mov ebx, eax
test ebx, ebx
je 0x410788
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 0x38]
add eax, eax
add eax, eax
call fcn.0040b948
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x410788
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
dec eax
test eax, eax
jl 0x41065a
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x50]
mov eax, dword [eax + edx*4]
mov ecx, dword [ebp - 0x38]
mov edx, ebx
call fcn.0040fd7c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x41065a
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x70], 1
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x24]
mov dword [eax + edx*4], ecx
inc dword [ebp - 0x4c]
inc dword [ebp - 0x50]
dec dword [ebp - 0x5c]
jne 0x41061a
mov eax, dword [ebp - 0x10]
dec eax
test eax, eax
jl 0x410719
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x50]
mov eax, dword [eax + edx*4]
mov ecx, dword [ebp - 0x38]
mov edx, ebx
call fcn.0040fd7c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x410719
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
dec eax
test eax, eax
jle 0x41070d
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], 1
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x54]
mov eax, dword [eax + edx*4 + 0x2c]
mov ecx, dword [ebp - 0x38]
mov edx, ebx
call fcn.0040feec
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x38]
dec edx
test edx, edx
jl 0x410705
inc edx
xor esi, esi
imul eax, esi, 0x9d
cmp dword [ebx + eax*4 + 0x28], 2
jl 0x410701
mov ecx, dword [ebx + eax*4 + 0x2c]
cmp ecx, dword [ebp - 0x24]
jne 0x410701
cmp dword [ebx + eax*4 + 0x70], 0
jne 0x410701
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x4c]
lea ecx, [ecx + edi*4]
push ecx
mov ecx, dword [ebx + eax*4 + 0x24]
pop edi
mov dword [edi], ecx
mov dword [ebx + eax*4 + 0x70], 1
inc dword [ebp - 0x4c]
inc esi
dec edx
jne 0x4106c8
inc dword [ebp - 0x54]
dec dword [ebp - 0x60]
jne 0x4106a6
inc dword [ebp - 0x50]
dec dword [ebp - 0x5c]
jne 0x410671
mov eax, dword [ebp - 0x38]
dec eax
test eax, eax
jl 0x410759
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], 0
imul eax, dword [ebp - 0x50], 0x9d
cmp dword [ebx + eax*4 + 0x70], 0
jne 0x410751
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x4c]
imul ecx, dword [ebp - 0x50], 0x9d
mov ecx, dword [ebx + ecx*4 + 0x24]
mov dword [eax + edx*4], ecx
inc dword [ebp - 0x50]
dec dword [ebp - 0x5c]
jne 0x41072c
lea eax, [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x20]
mov al, 1
call fcn.0040ff28
test eax, eax
jne 0x410783
xor eax, eax
mov dword [ebp - 0x44], eax
jmp 0x410783
mov edx, dword [ebp - 0x24]
mov al, 1
call fcn.00410070
test eax, eax
jne 0x410788
xor eax, eax
mov dword [ebp - 0x44], eax
test ebx, ebx
je 0x410793
mov eax, ebx
call fcn.0040b93c
cmp dword [ebp - 0x18], 0
je 0x4107a1
mov eax, dword [ebp - 0x18]
call fcn.0040b93c
cmp dword [ebp - 0x20], 0
je 0x4107af
mov eax, dword [ebp - 0x20]
call fcn.0040b96c
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4107e2
lea eax, [ebp - 0x674]
mov edx, 2
call fcn.004041fc
lea eax, [ebp - 4]
call fcn.004041d8
ret