Function at 0x40a2f0
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4e0
mov eax, dword [0x43b1c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x4dc], ecx
mov ecx, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x4c8], edx
lea edx, [ebp - 0x484]
mov dword [ebp - 0x4c4], ecx
xor ecx, ecx
push edx
or ebx, 0xffffffff
push eax
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x4a4], edi
mov dword [ebp - 0x4b8], ecx
mov dword [ebp - 0x498], ecx
mov dword [ebp - 0x4d4], ecx
mov dword [ebp - 0x4d0], ecx
mov dword [ebp - 0x4d8], 0x103
mov dword [ebp - 0x4c0], ebx
call fcn.004155e0
add esp, 8
mov dword [ebp - 0x488], eax
test eax, eax
jne 0x40a39d
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
call fcn.00413260
add esp, 4
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00419ad1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x484]
push ecx
push eax
push esi
call fcn.00412110
mov dword [ebp - 0x4ac], eax
mov eax, edi
imul eax, eax, 0x274
lea edx, [ebp - 0x48c]
push edx
push eax
call fcn.00415490
xor ecx, ecx
add esp, 0x14
mov dword [ebp - 0x4b0], eax
cmp eax, ecx
jne 0x40a3ee
mov ecx, dword [ebp - 0x48c]
push ecx
push str.InstallIfsLspProtocolChains:_LspAlloc_failed:__d_n
call fcn.00413260
add esp, 8
jmp 0x40ab68
mov dword [ebp - 0x4cc], ecx
mov dword [ebp - 0x4a8], ecx
cmp edi, ecx
jle 0x40a641
mov edx, dword [ebp - 0x4c4]
mov eax, dword [ebp - 0x484]
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4a0], 0
test eax, eax
jle 0x40a625
mov ebx, dword [ebp - 0x4cc]
mov esi, dword [ebp - 0x488]
lea eax, [ebx + 1]
imul ebx, ebx, 0x274
add ebx, dword [ebp - 0x4b0]
add esi, 0x28
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x49c], esi
lea ebx, [ebx]
mov ecx, dword [esi - 4]
mov edx, dword [ebp - 0x4b4]
mov eax, dword [edx]
push ecx
push eax
push str.Matching_selected_ID__d_to_catalog__d_n
call fcn.004131d0
mov ecx, dword [ebp - 0x4b4]
mov edx, dword [ecx]
add esp, 0xc
cmp edx, dword [esi - 4]
jne 0x40a5f4
cmp dword [esi], 6
jge 0x40a6d1
mov edx, dword [ebp - 0x49c]
mov eax, dword [ebp - 0x4dc]
lea esi, [edx - 0x28]
mov ecx, 0x9d
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [edx - 0x28]
add edx, 0x4c
push edx
push eax
mov ecx, 0x9d
lea edi, [ebp - 0x480]
push str._s_over___s_
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebx + 0x74]
push 0xff
push ecx
call fcn.0040a030
add esp, 0x14
test eax, eax
js 0x40a6e3
mov edx, dword [ebp - 0x49c]
mov esi, dword [edx]
cmp esi, 2
jl 0x40a5a5
add esi, 0xfffffffe
js 0x40a5a5
mov eax, dword [ebp - 0x490]
mov ecx, dword [ebp - 0x488]
add eax, esi
lea edi, [ecx + eax*4 + 0x2c]
jmp 0x40a510
mov edx, dword [edi]
mov eax, dword [ebp - 0x484]
mov ecx, dword [ebp - 0x488]
push edx
push eax
push ecx
call fcn.00411f80
add esp, 0xc
mov dword [ebp - 0x4d0], eax
cmp eax, 1
je 0x40a53c
sub edi, 4
dec esi
jns 0x40a510
jmp 0x40a5ab
mov eax, dword [ebp - 0x49c]
push 0
lea edi, [esi + 1]
add eax, 0xffffffd8
push edi
push eax
call fcn.00412190
mov ecx, dword [ebp - 0x4ac]
mov edx, dword [ebp - 0x4bc]
mov eax, dword [ebp - 0x49c]
push ecx
push edi
push ebx
mov dword [eax + 0x48], edx
call fcn.004121d0
mov edx, dword [ebp - 0x4bc]
or dword [ebx], 0x20000
mov eax, dword [ebp - 0x484]
mov ecx, dword [ebp - 0x488]
push esi
push edx
push eax
push ecx
lea edx, [ebp - 0x480]
push edx
mov dword [ebp - 0x4d4], 1
call fcn.00409c70
add esp, 0x2c
jmp 0x40a5d1
mov eax, dword [ebp - 0x4d0]
cmp eax, 1
je 0x40a5d1
mov eax, dword [ebp - 0x4ac]
push eax
push 0
push ebx
call fcn.00412190
mov ecx, dword [ebp - 0x45c]
add esp, 0xc
or dword [ebx], 0x20000
mov dword [ebx + 0x30], ecx
mov esi, dword [ebp - 0x49c]
mov edi, dword [ebp - 0x4a4]
mov eax, 1
add dword [ebp - 0x4cc], eax
add dword [ebp - 0x4bc], eax
add ebx, 0x274
mov ecx, dword [ebp - 0x4a0]
mov eax, dword [ebp - 0x484]
add dword [ebp - 0x490], 0x9d
inc ecx
add esi, 0x274
mov dword [ebp - 0x4a0], ecx
mov dword [ebp - 0x49c], esi
cmp ecx, eax
jl 0x40a460
mov ecx, dword [ebp - 0x4a8]
add dword [ebp - 0x4b4], 4
inc ecx
mov dword [ebp - 0x4a8], ecx
cmp ecx, edi
jl 0x40a414
xor ebx, ebx
test edi, edi
jle 0x40a690
mov esi, dword [ebp - 0x4b0]
add esi, 0x14
push esi
call dword [sym.imp.RPCRT4.dll_UuidCreate]
test eax, eax
jne 0x40a6f6
mov ecx, dword [ebp - 0x494]
push eax
mov eax, dword [ebp - 0x4c8]
push 1
lea edx, [esi - 0x14]
push edx
push eax
push esi
push ecx
call fcn.00409a90
add esp, 0x18
test eax, eax
jne 0x40a70f
inc ebx
add esi, 0x274
cmp ebx, edi
jl 0x40a650
cmp dword [ebp - 0x4d4], 1
mov eax, dword [ebp - 0x494]
jne 0x40ab39
lea edx, [ebp - 0x4e0]
push edx
push eax
call fcn.004155e0
mov ebx, eax
add esp, 8
mov dword [ebp - 0x4b8], ebx
test ebx, ebx
jne 0x40a721
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
call fcn.00413260
add esp, 4
jmp 0x40ab68
push str.InstallIfsLspProtocolChain:_Too_many_LSPs_installed__n
call fcn.00413260
add esp, 4
jmp 0x40ab68
push eax
push str.InstallIfsLspProtocolChains:_StringCchLSPPrintfW_failed:_0x_x_n
call fcn.00413260
add esp, 8
jmp 0x40ab68
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InstallIfsLspProtocolChains:_UuidCreate_failed:__d_n
call fcn.00413260
add esp, 8
jmp 0x40ab68
push str.InstallIfsLspProtocolChains:_Unable_to_install_the_dummy_LSP_entry__n
call fcn.00413260
add esp, 4
jmp 0x40ab68
test edi, edi
jle 0x40a74f
mov esi, dword [ebp - 0x4b0]
add esi, 0x24
mov edi, edi
mov ecx, dword [ebp - 0x4e0]
push ecx
lea edx, [esi - 0x10]
push ebx
push edx
call fcn.00412110
mov dword [esi], eax
add esp, 0xc
add esi, 0x274
dec edi
jne 0x40a730
xor edi, edi
cmp dword [ebp - 0x484], edi
jle 0x40a835
mov esi, dword [ebp - 0x488]
add esi, 0x70
cmp dword [esi], 0
je 0x40a822
xor ecx, ecx
cmp dword [esi - 0x48], ecx
jle 0x40a7a5
mov edx, dword [ebp - 0x4b0]
lea eax, [esi - 0x44]
nop
cmp dword [eax], 0
jne 0x40a79c
mov ebx, dword [esi]
imul ebx, ebx, 0x274
mov ebx, dword [ebx + edx - 0x250]
mov dword [eax], ebx
mov dword [esi], 0
inc ecx
add eax, 4
cmp ecx, dword [esi - 0x48]
jl 0x40a780
lea eax, [ebp - 0x48c]
push eax
lea ecx, [ebp - 0x4d8]
push ecx
lea edx, [ebp - 0x20c]
push edx
lea ebx, [esi - 0x5c]
push ebx
mov dword [ebp - 0x4d8], 0x103
call sub.WS2_32.dll_WSCGetProviderPath
cmp eax, 0xffffffff
je 0x40a89b
lea eax, [ebp - 0x48c]
push eax
mov eax, dword [ebp - 0x494]
push 1
lea ecx, [esi - 0x70]
push ecx
lea edx, [ebp - 0x20c]
push edx
push ebx
push eax
call fcn.0040d650
add esp, 0x18
cmp eax, 0xffffffff
je 0x40a8b4
mov ecx, dword [esi - 0x48]
mov eax, dword [esi - 0x4c]
push ecx
lea edx, [esi + 4]
push edx
push eax
push str.Updated_entry_ID:__d:__S__chain_len___d__n
call fcn.004131d0
mov ebx, dword [ebp - 0x4b8]
add esp, 0x10
inc edi
add esi, 0x274
cmp edi, dword [ebp - 0x484]
jl 0x40a766
mov eax, dword [ebp - 0x488]
push eax
call fcn.00415690
push ebx
call fcn.00415690
add esp, 8
mov dword [ebp - 0x4b8], 0
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea ecx, [ebp - 0x39c]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov eax, dword [ebp - 0x494]
lea edx, [ebp - 0x484]
push edx
push eax
call fcn.004155e0
add esp, 8
mov dword [ebp - 0x488], eax
test eax, eax
jne 0x40a8cd
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
call fcn.00413260
jmp 0x40ab9a
mov ecx, dword [ebp - 0x48c]
push ecx
push str.InstallIfsLspProtocolChains:_WSCGetProviderPath_failed:__d_n
call fcn.00413260
add esp, 8
jmp 0x40ab68
mov edx, dword [ebp - 0x48c]
push edx
push str.InstallIfsLspProtocolChains:_UpdateProvider_failed:__d_n
call fcn.00413260
add esp, 8
jmp 0x40ab68
mov edx, dword [ebp - 0x484]
lea ecx, [ebp - 0x48c]
push ecx
lea eax, [edx*4]
push eax
call fcn.00415490
add esp, 8
mov dword [ebp - 0x498], eax
test eax, eax
jne 0x40a906
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
call fcn.00413260
add esp, 4
jmp 0x40ab68
xor edi, edi
cmp dword [ebp - 0x4a4], edi
jle 0x40a95a
mov esi, dword [ebp - 0x498]
mov ebx, dword [ebp - 0x4c4]
sub ebx, esi
mov edi, edi
mov ecx, dword [ebp - 0x484]
mov edx, dword [ebp - 0x488]
mov eax, dword [ebx + esi]
push ecx
push edx
push eax
call fcn.00412040
add esp, 0xc
test eax, eax
je 0x40ab2a
mov ecx, dword [eax + 0x24]
mov dword [eax + 0x70], 1
mov dword [esi], ecx
inc edi
add esi, 4
cmp edi, dword [ebp - 0x4a4]
jl 0x40a920
mov eax, dword [ebp - 0x484]
xor ebx, ebx
mov dword [ebp - 0x4a8], ebx
cmp dword [ebp - 0x4a4], ebx
jle 0x40aabc
jmp 0x40a980
mov edx, dword [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x4c4]
mov ecx, dword [eax + ebx*4]
push edx
push ecx
call fcn.00412040
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x4c8], esi
test esi, esi
je 0x40ab2a
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
push edx
lea eax, [esi + 0x74]
push eax
push ecx
push str.Looping_through:__d:__S__chain_len___d__n
call fcn.004131d0
mov edx, dword [esi + 0x28]
mov eax, dword [ebp - 0x484]
dec edx
add esp, 0x10
mov dword [ebp - 0x4a0], 1
cmp edx, 1
jle 0x40aaa9
add esi, 0x30
mov dword [ebp - 0x490], esi
lea esp, [esp]
mov esi, dword [ebp - 0x490]
mov ecx, dword [esi]
push eax
mov eax, dword [ebp - 0x488]
push eax
push ecx
call fcn.00412140
mov edx, dword [esi]
push eax
push edx
push str.___Finding_dummy_ID_for_chain_entry:__d_is__d_n
mov dword [ebp - 0x4ac], eax
call fcn.004131d0
mov eax, dword [ebp - 0x484]
add esp, 0x18
xor ebx, ebx
test eax, eax
jle 0x40aa7d
mov esi, dword [ebp - 0x488]
add esi, 0x70
cmp dword [esi - 0x48], 2
jl 0x40aa72
mov ecx, dword [esi - 0x44]
cmp ecx, dword [ebp - 0x4ac]
jne 0x40aa72
cmp dword [esi], 0
jne 0x40aa72
mov edx, dword [esi - 0x4c]
mov eax, dword [ebp - 0x498]
mov dword [eax + edi*4], edx
mov ecx, dword [esi - 0x4c]
push ecx
push str.______Adding:__d_n
inc edi
mov dword [esi], 1
call fcn.004131d0
mov eax, dword [ebp - 0x484]
add esp, 8
inc ebx
add esi, 0x274
cmp ebx, eax
jl 0x40aa32
mov edx, dword [ebp - 0x4c8]
mov ecx, dword [ebp - 0x4a0]
mov edx, dword [edx + 0x28]
add dword [ebp - 0x490], 4
inc ecx
dec edx
mov dword [ebp - 0x4a0], ecx
cmp ecx, edx
jl 0x40a9f0
mov ebx, dword [ebp - 0x4a8]
inc ebx
mov dword [ebp - 0x4a8], ebx
cmp ebx, dword [ebp - 0x4a4]
jl 0x40a980
xor edx, edx
test eax, eax
jle 0x40aaf2
mov ecx, dword [ebp - 0x498]
lea edi, [ecx + edi*4]
mov ecx, dword [ebp - 0x488]
add ecx, 0x24
cmp dword [ecx + 0x4c], 0
jne 0x40aae7
mov eax, dword [ecx]
mov dword [edi], eax
mov eax, dword [ebp - 0x484]
add edi, 4
inc edx
add ecx, 0x274
cmp edx, eax
jl 0x40aad4
mov edx, dword [ebp - 0x498]
lea ecx, [ebp - 0x48c]
push ecx
push eax
mov eax, dword [ebp - 0x494]
push edx
push eax
call fcn.00409ec0
add esp, 0x10
test eax, eax
je 0x40ab5e
mov ecx, dword [ebp - 0x48c]
push ecx
push str.InstallIfsLspProtocolChains:_WriteProviderOrder_failed:__d_n
call fcn.00413260
add esp, 8
jmp 0x40ab68
push str.InstallIfsLspProtocolChain:_Unable_to_find_entry_to_reorder_catalog__n
call fcn.00413260
add esp, 4
jmp 0x40ab68
mov edx, dword [ebp - 0x4ac]
push 0
push edx
push eax
call fcn.0040a0a0
add esp, 0xc
test eax, eax
je 0x40ab5e
push str.InstallIfsLspProtocolChains:_Unable_to_reorder_Winsock_catalog__n
call fcn.00413260
add esp, 4
jmp 0x40ab68
mov dword [ebp - 0x4c0], 0
mov ecx, dword [ebp - 0x488]
push ecx
call fcn.00415690
mov eax, dword [ebp - 0x4b8]
add esp, 4
test eax, eax
je 0x40ab8a
push eax
call fcn.00415690
add esp, 4
mov eax, dword [ebp - 0x498]
test eax, eax
je 0x40ab9d
push eax
call fcn.004154c0
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x4c0]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00419ad1
mov esp, ebp
pop ebp
ret