Function at 0x40dbe0
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4f4
mov eax, dword [0x42e2a4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x4f0], ecx
xor ecx, ecx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x4c4], ecx
mov dword [ebp - 0x4ec], ecx
mov dword [ebp - 0x4a0], ecx
mov dword [ebp - 0x4cc], ecx
push edi
mov edi, dword [ebp + 0x14]
lea ecx, [ebp - 0x494]
push ecx
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x4c0], edx
mov dword [ebp - 0x4e0], ebx
mov dword [ebp - 0x4b4], edi
mov dword [ebp - 0x4e8], 0x103
mov dword [ebp - 0x4b8], 0xffffffff
call fcn.00412330
add esp, 4
mov dword [ebp - 0x48c], eax
test eax, eax
jne 0x40dc94
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
call fcn.00414a86
add eax, 0x40
push eax
call fcn.00414dec
mov eax, dword [ebp - 0x4b8]
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041369d
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x494]
push edx
push eax
push esi
call fcn.00411610
add esp, 0xc
test eax, eax
je 0x40dd21
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x4c8], eax
test eax, eax
jne 0x40dcd8
push 0x1d6
push str.lspadd.cpp
push str.dwDummyLspId___0
push str._n_Assertion_failed:__s_n______Source_file:__s__line:__d_n_n
call fcn.00413620
add esp, 0x10
call dword [0x42307c]
mov esi, edi
imul esi, esi, 0x274
push esi
push str.LspAlloc_size_d_n
call fcn.00414284
mov ecx, dword [0xc314b4]
add esp, 8
push esi
push 8
push ecx
call dword [0x42308c]
mov dword [ebp - 0x498], eax
test eax, eax
jne 0x40dd2d
push 0x2747
mov dword [ebp - 0x49c], 0x2747
push str.InstallIfsLspProtocolChains:_LspAlloc_failed:__d_n
jmp 0x40e667
mov dword [ebp - 0x4c8], 0
jmp 0x40dcb6
xor esi, esi
mov dword [ebp - 0x4dc], esi
mov dword [ebp - 0x4ac], esi
cmp esi, edi
jge 0x40e03a
mov dword [ebp - 0x4d4], ebx
lea esp, [esp]
cmp dword [ebp - 0x494], 0
mov dword [ebp - 0x4bc], 0
jle 0x40e01c
mov ebx, dword [ebp - 0x48c]
mov eax, esi
imul eax, eax, 0x274
add eax, dword [ebp - 0x498]
lea edx, [esi + 1]
add ebx, 0x28
mov dword [ebp - 0x4d0], edx
mov dword [ebp - 0x4a4], 0
mov dword [ebp - 0x490], eax
mov dword [ebp - 0x4b0], ebx
lea ecx, [ecx]
mov eax, dword [ebx - 4]
mov ecx, dword [ebp - 0x4d4]
mov edx, dword [ecx]
push eax
push edx
push str.Matching_selected_ID__d_to_catalog__d_n
call fcn.00414284
mov eax, dword [ebp - 0x4d4]
mov ecx, dword [eax]
add esp, 0xc
cmp ecx, dword [ebx - 4]
jne 0x40dfed
cmp dword [ebx], 6
jge 0x40e0e0
mov edx, dword [ebp - 0x490]
lea eax, [ebx - 0x28]
mov esi, eax
mov edi, edx
mov ecx, 0x9d
rep movsd dword es:[edi], dword [esi]
mov esi, eax
add ebx, 0x4c
mov dword [ebp - 0x4e4], eax
mov eax, dword [ebp - 0x4f0]
push ebx
mov ecx, 0x9d
lea edi, [ebp - 0x488]
push eax
rep movsd dword es:[edi], dword [esi]
push str._s_over___s_
lea ebx, [edx + 0x74]
mov ecx, 0xff
call fcn.0040d5f0
add esp, 0xc
test eax, eax
js 0x40e0ea
mov ecx, dword [ebp - 0x4b0]
mov eax, dword [ecx]
cmp eax, 2
jl 0x40df6f
add eax, 0xfffffffe
js 0x40df6f
mov edx, dword [ebp - 0x4a4]
mov edi, dword [ebp - 0x48c]
add edx, eax
lea ebx, [edi + edx*4 + 0x2c]
mov esi, dword [ebx]
xor ecx, ecx
lea edx, [edi + 0x24]
cmp dword [edx], esi
je 0x40de7d
inc ecx
add edx, 0x274
cmp ecx, dword [ebp - 0x494]
jl 0x40de58
mov dword [ebp - 0x4cc], 0
mov ecx, dword [ebp - 0x4cc]
jmp 0x40de99
imul ecx, ecx, 0x274
mov ecx, dword [ecx + edi]
shr ecx, 0x11
not ecx
and ecx, 1
mov dword [ebp - 0x4cc], ecx
cmp ecx, 1
je 0x40dea4
sub ebx, 4
dec eax
jns 0x40de51
jmp 0x40df75
mov ecx, dword [ebp - 0x4b0]
mov edx, dword [ecx]
mov esi, dword [ebp - 0x4e4]
lea ebx, [eax + 1]
mov dword [ebp - 0x4d8], eax
cmp edx, ebx
jle 0x40ded6
lea ecx, [esi + edx*4 + 0x2c]
sub edx, ebx
mov edi, dword [ecx - 4]
mov dword [ecx], edi
add ecx, 0xfffffffc
dec edx
jne 0x40dec5
mov edi, dword [ebp - 0x48c]
mov ecx, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4b0]
mov dword [esi + ebx*4 + 0x2c], 0
inc dword [esi + 0x28]
mov esi, dword [ebp - 0x490]
mov dword [edx + 0x48], ecx
mov ecx, ebx
cmp ecx, dword [esi + 0x28]
jge 0x40df2c
mov edi, ecx
sub edi, eax
lea edx, [esi + ecx*4 + 0x2c]
lea edi, [esi + edi*4 + 0x2c]
lea esp, [esp]
mov eax, dword [edx]
mov dword [edi], eax
inc ecx
add edx, 4
add edi, 4
cmp ecx, dword [esi + 0x28]
jl 0x40df10
mov edi, dword [ebp - 0x48c]
mov eax, dword [ebp - 0x4d8]
mov ecx, dword [ebp - 0x4c8]
mov dword [esi + 0x2c], ecx
mov ecx, dword [ebp - 0x4d0]
mov edx, 1
sub edx, ebx
add dword [esi + 0x28], edx
mov edx, dword [ebp - 0x494]
or dword [esi], 0x20000
push ecx
push edx
lea ecx, [ebp - 0x488]
push edi
push ecx
mov dword [ebp - 0x4a0], 1
call fcn.0040e9e0
add esp, 0x10
jmp 0x40dfbe
mov ecx, dword [ebp - 0x4cc]
cmp ecx, 1
je 0x40dfb8
mov edx, dword [ebp - 0x490]
mov ecx, dword [edx + 0x28]
test ecx, ecx
jle 0x40df9d
lea eax, [edx + ecx*4 + 0x2c]
jmp 0x40df90
mov esi, dword [eax - 4]
mov dword [eax], esi
dec ecx
sub eax, 4
test ecx, ecx
jg 0x40df90
mov eax, dword [ebp - 0x4c8]
mov ecx, dword [ebp - 0x464]
mov dword [edx + 0x2c], eax
inc dword [edx + 0x28]
or dword [edx], 0x20000
mov dword [edx + 0x30], ecx
mov esi, dword [ebp - 0x490]
mov ebx, dword [ebp - 0x4b0]
mov edi, dword [ebp - 0x4b4]
mov eax, 1
add dword [ebp - 0x4dc], eax
add dword [ebp - 0x4d0], eax
add esi, 0x274
mov dword [ebp - 0x490], esi
mov esi, dword [ebp - 0x4dc]
mov eax, dword [ebp - 0x4bc]
add dword [ebp - 0x4a4], 0x9d
inc eax
add ebx, 0x274
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x4b0], ebx
cmp eax, dword [ebp - 0x494]
jl 0x40dda0
mov eax, dword [ebp - 0x4ac]
add dword [ebp - 0x4d4], 4
inc eax
mov dword [ebp - 0x4ac], eax
cmp eax, edi
jl 0x40dd50
cmp esi, edi
je 0x40e05e
push 0x246
push str.lspadd.cpp
push str.LayerIdx___int_dwCatalogIdArrayCount
push str._n_Assertion_failed:__s_n______Source_file:__s__line:__d_n_n
call fcn.00413620
add esp, 0x10
call dword [0x42307c]
xor esi, esi
test edi, edi
jle 0x40e0a8
mov ebx, dword [ebp - 0x498]
add ebx, 0x14
lea ecx, [ecx]
push ebx
call dword [sym.imp.RPCRT4.dll_UuidCreate]
test eax, eax
jne 0x40e0f5
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [ebp - 0x4a8]
push eax
push ecx
lea edx, [ebx - 0x14]
mov ecx, 1
call fcn.0040d9b0
add esp, 8
test eax, eax
jne 0x40e106
inc esi
add ebx, 0x274
cmp esi, edi
jl 0x40e070
cmp dword [ebp - 0x4a0], 1
mov eax, dword [ebp - 0x4a8]
jne 0x40e6f4
lea edx, [ebp - 0x4c0]
push edx
call fcn.00412330
mov ebx, eax
add esp, 4
mov dword [ebp - 0x4c4], ebx
test ebx, ebx
jne 0x40e110
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
jmp 0x40e70c
push str.InstallIfsLspProtocolChain:_Too_many_LSPs_installed__n
jmp 0x40e70c
push eax
push str.InstallIfsLspProtocolChains:_StringCchPrintfW_failed:_0x_x_n
jmp 0x40e667
call dword [0x423070]
push eax
push str.InstallIfsLspProtocolChains:_UuidCreate_failed:__d_n
jmp 0x40e667
push str.InstallIfsLspProtocolChains:_Unable_to_install_the_dummy_LSP_entry__n
jmp 0x40e70c
test edi, edi
jle 0x40e17f
mov esi, dword [ebp - 0x498]
mov dword [ebp - 0x4a0], edi
mov edi, dword [ebp - 0x4c0]
add esi, 0x24
lea esp, [esp]
push edi
lea eax, [esi - 0x10]
push ebx
push eax
call fcn.00411610
add esp, 0xc
test eax, eax
je 0x40e147
mov eax, dword [eax + 0x24]
jmp 0x40e149
xor eax, eax
mov dword [esi], eax
test eax, eax
jne 0x40e171
push 0x26d
push str.lspadd.cpp
push str.pLayeredEntries__i__.dwCatalogEntryId___0
push str._n_Assertion_failed:__s_n______Source_file:__s__line:__d_n_n
call fcn.00413620
add esp, 0x10
call dword [0x42307c]
add esi, 0x274
dec dword [ebp - 0x4a0]
jne 0x40e130
xor edi, edi
cmp dword [ebp - 0x494], edi
jle 0x40e26a
mov esi, dword [ebp - 0x48c]
add esi, 0x70
cmp dword [esi], 0
je 0x40e257
xor ecx, ecx
cmp dword [esi - 0x48], ecx
jle 0x40e1d5
mov edx, dword [ebp - 0x498]
lea eax, [esi - 0x44]
nop
cmp dword [eax], 0
jne 0x40e1cc
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 0x40e1b0
lea ecx, [ebp - 0x49c]
push ecx
lea edx, [ebp - 0x4e8]
push edx
lea eax, [ebp - 0x210]
push eax
lea ebx, [esi - 0x5c]
push ebx
mov dword [ebp - 0x4e8], 0x103
call dword [sym.imp.WS2_32.dll_WSCGetProviderPath]
cmp eax, 0xffffffff
je 0x40e368
cmp dword [ebp - 0x4a8], 1
jne 0x40e324
lea ecx, [ebp - 0x49c]
push ecx
push 1
lea edx, [esi - 0x70]
push edx
lea eax, [ebp - 0x210]
push eax
push ebx
call dword [0xc3149c]
cmp eax, 0xffffffff
je 0x40e33a
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.00414284
mov ebx, dword [ebp - 0x4c4]
add esp, 0x10
inc edi
add esi, 0x274
cmp edi, dword [ebp - 0x494]
jl 0x40e196
mov ecx, dword [ebp - 0x48c]
mov edx, dword [0xc314b4]
mov esi, dword [0x423090]
push ecx
push 0
push edx
call esi
mov eax, dword [0xc314b4]
push ebx
push 0
push eax
call esi
mov dword [ebp - 0x4c4], 0
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea ecx, [ebp - 0x3a8]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov eax, dword [ebp - 0x4a8]
lea edx, [ebp - 0x494]
push edx
call fcn.00412330
add esp, 4
mov dword [ebp - 0x48c], eax
test eax, eax
je 0x40dc67
mov ebx, dword [ebp - 0x494]
lea esi, [ebx*4]
push esi
push str.LspAlloc_size_d_n
call fcn.00414284
mov eax, dword [0xc314b4]
add esp, 8
push esi
push 8
push eax
call dword [0x42308c]
mov dword [ebp - 0x4a4], eax
test eax, eax
jne 0x40e310
mov dword [ebp - 0x49c], 0x2747
mov dword [ebp - 0x4ec], eax
test eax, eax
jne 0x40e379
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
jmp 0x40e70c
push str.UpdateProvider:_Unable_to_manipulate_64_bit_catalog_from_a_32_bit_process_n
call fcn.00414a86
add eax, 0x40
push eax
call fcn.00414dec
add esp, 8
mov ecx, dword [ebp - 0x49c]
push ecx
push str.UpdateProvider:_WSCUpdateProvider_failed:__d_n
call fcn.00414a86
add eax, 0x40
push eax
call fcn.00414dec
mov eax, dword [ebp - 0x49c]
add esp, 0xc
push eax
push str.InstallIfsLspProtocolChains:_UpdateProvider_failed:__d_n
jmp 0x40e667
mov edx, dword [ebp - 0x49c]
push edx
push str.InstallIfsLspProtocolChains:_WSCGetProviderPath_failed:__d_n
jmp 0x40e667
xor edi, edi
mov dword [ebp - 0x490], edi
cmp dword [ebp - 0x4b4], edi
jle 0x40e3ff
mov ecx, dword [ebp - 0x4e0]
sub ecx, eax
mov edx, eax
mov dword [ebp - 0x4c0], ecx
lea esp, [esp]
xor eax, eax
test ebx, ebx
jle 0x40e3c7
mov ecx, dword [ebp - 0x4c0]
mov esi, dword [ecx + edx]
mov ecx, dword [ebp - 0x48c]
add ecx, 0x24
cmp dword [ecx], esi
je 0x40e3d1
inc eax
add ecx, 0x274
cmp eax, ebx
jl 0x40e3b8
push str.InstallIfsLspProtocolChain:_Unable_to_find_entry_to_reorder_catalog__n
jmp 0x40e70c
imul eax, eax, 0x274
add eax, dword [ebp - 0x48c]
je 0x40e3c7
mov ecx, 1
add dword [ebp - 0x490], ecx
mov dword [eax + 0x70], ecx
mov eax, dword [eax + 0x24]
mov dword [edx], eax
add edi, ecx
add edx, 4
cmp edi, dword [ebp - 0x4b4]
jl 0x40e3a0
cmp dword [ebp - 0x4b4], 0
mov dword [ebp - 0x4ac], 0
jle 0x40e5ce
xor eax, eax
test ebx, ebx
jle 0x40e3c7
mov ecx, dword [ebp - 0x4e0]
mov edx, dword [ebp - 0x4ac]
mov edx, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x48c]
add ecx, 0x24
cmp dword [ecx], edx
je 0x40e44d
inc eax
add ecx, 0x274
cmp eax, ebx
jl 0x40e434
push str.InstallIfsLspProtocolChain:_Unable_to_find_entry_to_reorder_catalog__n
jmp 0x40e70c
imul eax, eax, 0x274
add eax, dword [ebp - 0x48c]
mov esi, eax
mov dword [ebp - 0x4a0], esi
je 0x40e3c7
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x24]
push eax
lea ecx, [esi + 0x74]
push ecx
push edx
push str.Looping_through:__d:__S__chain_len___d__n
call fcn.00414284
mov eax, dword [esi + 0x28]
dec eax
add esp, 0x10
mov dword [ebp - 0x4bc], 1
cmp eax, 1
jle 0x40e58f
mov ecx, esi
add ecx, 0x30
mov dword [ebp - 0x498], ecx
mov edx, dword [ebp - 0x498]
mov edi, dword [ebp - 0x48c]
mov edx, dword [edx]
mov esi, dword [ebp - 0x494]
xor eax, eax
lea ecx, [edi + 0x24]
jmp 0x40e4c0
cmp edx, dword [ecx]
je 0x40e5af
inc eax
add ecx, 0x274
cmp eax, esi
jl 0x40e4c0
push 0x20c
push str.lsputil.cpp
push 0x42bb14
push str._n_Assertion_failed:__s_n______Source_file:__s__line:__d_n_n
call fcn.00413620
add esp, 0x10
call dword [0x42307c]
xor ebx, ebx
mov eax, dword [ebp - 0x498]
mov ecx, dword [eax]
push ebx
push ecx
push str.___Finding_dummy_ID_for_chain_entry:__d_is__d_n
call fcn.00414284
mov esi, dword [ebp - 0x48c]
mov edi, dword [ebp - 0x494]
add esp, 0xc
add esi, 0x70
lea ecx, [ecx]
cmp dword [esi - 0x48], 2
jl 0x40e560
cmp dword [esi - 0x44], ebx
jne 0x40e560
cmp dword [esi], 0
jne 0x40e560
mov edx, dword [esi - 0x4c]
mov eax, dword [ebp - 0x490]
mov ecx, dword [ebp - 0x4a4]
mov dword [ecx + eax*4], edx
mov edx, dword [esi - 0x4c]
push edx
inc eax
push str.______Adding:__d_n
mov dword [ebp - 0x490], eax
mov dword [esi], 1
call fcn.00414284
add esp, 8
add esi, 0x274
dec edi
jne 0x40e520
mov ecx, dword [ebp - 0x4a0]
mov eax, dword [ebp - 0x4bc]
mov edx, dword [ecx + 0x28]
add dword [ebp - 0x498], 4
inc eax
dec edx
mov dword [ebp - 0x4bc], eax
cmp eax, edx
jl 0x40e4a2
mov eax, dword [ebp - 0x4ac]
inc eax
mov dword [ebp - 0x4ac], eax
cmp eax, dword [ebp - 0x4b4]
jge 0x40e5ce
mov ebx, dword [ebp - 0x494]
jmp 0x40e416
imul eax, eax, 0x274
cmp dword [eax + edi + 0x28], 0
jne 0x40e5c5
mov ebx, dword [eax + edi + 0x24]
jmp 0x40e4f7
mov ebx, dword [eax + edi + 0x2c]
jmp 0x40e4f7
mov edi, dword [ebp - 0x494]
mov esi, dword [ebp - 0x4a4]
mov ecx, dword [ebp - 0x490]
test edi, edi
jle 0x40e603
mov eax, dword [ebp - 0x48c]
add eax, 0x24
mov edx, edi
cmp dword [eax + 0x4c], 0
jne 0x40e5fb
mov ebx, dword [eax]
mov dword [esi + ecx*4], ebx
inc ecx
add eax, 0x274
dec edx
jne 0x40e5ef
cmp ecx, edi
je 0x40e629
push 0x306
push str.lspadd.cpp
push str.idx__iProviderCount
push str._n_Assertion_failed:__s_n______Source_file:__s__line:__d_n_n
call fcn.00413620
add esp, 0x10
call dword [0x42307c]
cmp dword [ebp - 0x4a8], 1
jne 0x40e67a
push edi
push esi
call dword [sym.imp.WS2_32.dll_WSCWriteProviderOrder]
test eax, eax
je 0x40e690
push eax
push str.WriteProviderOrder:_WSCWriteProviderOrder_failed:__d_n
mov dword [ebp - 0x49c], eax
call fcn.00414a86
add eax, 0x40
push eax
call fcn.00414dec
mov eax, dword [ebp - 0x49c]
add esp, 0xc
push eax
push str.InstallIfsLspProtocolChains:_WriteProviderOrder_failed:__d_n
call fcn.00414a86
add eax, 0x40
push eax
call fcn.00414dec
add esp, 0xc
jmp 0x40e69a
push str.WriteProviderOrder:_Unable_to_manipulate_64_bit_catalog_from_a_32_bit_process_n
call fcn.00414a86
add eax, 0x40
push eax
call fcn.00414dec
add esp, 8
mov dword [ebp - 0x4b8], 0
mov edx, dword [ebp - 0x48c]
mov eax, dword [0xc314b4]
mov esi, dword [0x423090]
push edx
push 0
push eax
call esi
mov eax, dword [ebp - 0x4c4]
test eax, eax
je 0x40e6c7
mov ecx, dword [0xc314b4]
push eax
push 0
push ecx
call esi
mov eax, dword [ebp - 0x4ec]
test eax, eax
je 0x40e6dd
mov edx, dword [0xc314b4]
push eax
push 0
push edx
call esi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x4b8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041369d
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x4c8]
push ecx
call fcn.0040eb80
add esp, 4
test eax, eax
je 0x40e690
push str.InstallIfsLspProtocolChains:_Unable_to_reorder_Winsock_catalog__n
call fcn.00414a86
add eax, 0x40
push eax
call fcn.00414dec
add esp, 8
jmp 0x40e69a