Function at 0x5fd8a610
Capabilities:
Initialize winsock library

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x5fd8a810
push 0x5fdc0910
mov eax, dword fs:[0]
push eax
sub esp, 0x1c8
mov eax, dword [0x5fde94a8]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, ecx
mov dword [ebp - 0x1d4], esi
movzx eax, dx
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], 0
mov edi, 0xe
mov eax, dword [esi + 0x70]
mov dword [ebp - 0x1b8], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1cc], 0
mov eax, dword [0x5fde9010]
cmp eax, 0x5fde9010
je 0x5fd8a6aa
test dword [eax + 0x1c], 0x4000
jne 0x5fdafbcb
lea eax, [esi + 0x44]
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_EnterCriticalSection]
mov ebx, dword [ebp + 0xc]
test ebx, ebx
jne 0x5fd92b80
mov eax, dword [ebp + 8]
mov dword [esi + 0x244], eax
test byte [esi + 0x1bc], 4
jne 0x5fd8a6e2
mov ecx, esi
call fcn.5fd8a831
mov edi, eax
test edi, edi
jne 0x5fdafbe6
lea eax, [ebp - 0x1b0]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov edi, eax
test edi, edi
jne 0x5fdafbf7
mov eax, 1
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1d0], eax
mov ecx, dword [esi + 0x70]
mov eax, ecx
and eax, 0x2000
or eax, edi
je 0x5fd8cd71
and ecx, 0x400
or ecx, edi
jne 0x5fd8cd71
mov edx, dword [0x5fde92a8]
test edx, edx
je 0x5fd8cd71
mov ecx, dword [esi + 0x254]
test ecx, ecx
je 0x5fd8a771
mov eax, dword [ebp - 0x1c0]
cmp ax, 1
je 0x5fd90832
cmp ax, 0x1c
jne 0x5fd9083d
mov eax, dword [ecx + 0x24]
and eax, 0x200
test eax, eax
jne 0x5fd9083d
mov eax, dword [0x5fde9010]
cmp eax, 0x5fde9010
je 0x5fd8a78a
test dword [eax + 0x1c], 0x4000
jne 0x5fdafc08
mov edi, 0x25e5
mov dword [esi + 0x104], edi
lea eax, [esi + 0x44]
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x1bc]
test eax, eax
jne 0x5fdc1d11
cmp dword [ebp - 0x1c4], 0
je 0x5fd8a7bc
call dword [sym.imp.WS2_32.dll_WSACleanup]
test ebx, ebx
jne 0x5fd8a7cf
mov dword [esi + 0x104], edi
mov ecx, esi
call fcn.5fd866e6
mov edi, eax
mov esi, dword [0x5fde9010]
cmp esi, 0x5fde9010
je 0x5fd8a7ea
test dword [esi + 0x1c], 0x4000
jne 0x5fdc1d1d
mov eax, edi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.5fd83560
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x274]
mov dword [ebp - 0x1b4], eax
test eax, eax
je 0x5fd8cdc1
test byte [esi + 0xa8], 0x80
jne 0x5fd8cdc1
push dword [esi + 0xb4]
push dword [esi + 0x100]
push dword [esi + 0xec]
push dword [esi + 0x74]
push dword [esi + 0x70]
push dword [ebp - 0x1c0]
push dword [esi + 0x68]
mov ecx, eax
call dword [0x5fdec34c]
call dword [ebp - 0x1b4]
test eax, eax
jne 0x5fdafc22
push 0
mov eax, dword [ebp - 0x1b8]
or eax, 0x10000000
push eax
push 0
push dword [ebp - 0x1c0]
push dword [esi + 0x68]
push 0
push 0
call sym.DNSAPI.dll_Dns_BuildPacket
mov ecx, eax
mov dword [ebp - 0x1bc], ecx
mov dword [ebp - 0x1b4], ecx
test ecx, ecx
je 0x5fdacff8
mov edx, dword [ebp - 0x1b8]
mov eax, edx
and eax, 0x400
mov dword [ebp - 0x1d8], eax
or eax, 0
jne 0x5fd91976
mov byte [ecx + 0x1b9], al
mov eax, edx
and eax, 0x1000000
or eax, 0
jne 0x5fdad002
mov byte [ecx + 0x1ba], al
call fcn.5fd8cbac
mov ecx, 0x5fde9368
mov eax, 1
lock xadd dword [ecx], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x1bc]
add eax, 0x160
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_InitializeCriticalSection]
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x1bc]
mov dword [eax + 0x178], 1
mov edx, dword [ebp - 0x1c0]
mov ecx, eax
call fcn.5fd8cbd5
mov ecx, 0x160
call fcn.5fd85d21
mov dword [ebp - 0x1b4], eax
test eax, eax
je 0x5fdad00c
mov ecx, eax
call fcn.5fd8bb2b
mov edx, dword [ebp - 0x1b4]
test ebx, ebx
jne 0x5fd92ba1
mov dword [esi + 0x230], edx
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp - 0x1bc]
mov dword [ecx + 0x1a4], eax
mov eax, dword [esi + 0xe4]
mov dword [ecx + 0x9c], eax
cmp dword [esi + 0xe8], 0
jne 0x5fdad016
xor eax, eax
mov dword [ecx + 0xa4], eax
mov eax, dword [esi + 0xb4]
mov dword [ecx + 0x98], eax
mov dword [edx + 0x18], ecx
mov dword [ebp - 0x1bc], 0
mov eax, dword [esi + 0x258]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x1b8]
mov dword [edx + 0x20], eax
mov ecx, dword [ebp - 0x1c8]
mov dword [edx + 0x24], ecx
and eax, 0x200
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], 1
mov dword [edx + 0xf8], esi
mov dword [edx + 0xfc], fcn.5fd8dbd0
call dword [sym.imp.api_ms_win_core_sysinfo_l1_2_1.dll_GetTickCount64]
mov ecx, dword [ebp - 0x1b4]
mov dword [ecx + 0x100], eax
mov dword [ecx + 0x104], edx
push 4
push 0xdd4
push 0x5fd8d0f0
push esi
call sym.DNSAPI.dll_AddRefQueryBlobEx
cmp dword [esi + 0xec], 0
je 0x5fd9e063
mov eax, dword [ebp - 0x1b4]
mov dword [eax + 0xe8], 1
lea edx, [esi + 0x1bc]
mov ebx, 0x8000
mov eax, dword [edx]
mov ecx, eax
or ecx, ebx
lock cmpxchg dword [edx], ecx
jne 0x5fd8cf8e
test eax, 0x1000
mov ebx, dword [ebp + 0xc]
jne 0x5fdafc5c
mov ecx, dword [esi + 0x254]
call fcn.5fd8e98d
mov ecx, dword [ebp - 0x1b4]
mov dword [ecx + 0x10], eax
test eax, eax
je 0x5fdafcca
test ebx, ebx
jne 0x5fd92bac
mov dword [esi + 0x23c], 1
push 0x5fd8cb28
push dword [0x5fde946c]
push dword [0x5fde9468]
call dword [sym.imp.ntdll.dll_EtwEventEnabled]
test al, al
jne 0x5fdafd30
mov eax, dword [ebp - 0x1d8]
or eax, 0
jne 0x5fd8d08a
mov eax, dword [ebp - 0x1b8]
and eax, 2
or eax, 0
jne 0x5fd8d08a
mov ecx, dword [ebp - 0x1c8]
and ecx, 0x20000
or eax, ecx
jne 0x5fd8d08a
mov ecx, dword [esi + 0x254]
test ecx, ecx
je 0x5fd8d08a
cmp dword [ecx + 0x30], eax
je 0x5fd8d08a
cmp dword [0x5fde92c4], eax
jne 0x5fd8d08a
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1b8], eax
lea eax, [ebp - 0x1b8]
push eax
push esi
push dword [esi + 0xb4]
push dword [ecx + 0x64]
mov edx, dword [ebp - 0x1c0]
mov ecx, dword [esi + 0x68]
call fcn.5fd9061c
mov edi, eax
test edi, edi
jne 0x5fdafd56
mov eax, dword [ebp - 0x1b4]
mov dword [eax + 0xfc], 0x5fd8ed10
mov ecx, dword [ebp - 0x1b8]
cmp ecx, eax
jne 0x5fd9d3ef
mov ebx, dword [ebp - 0x1b4]
push 0x13
push 0xe48
push 0x5fd8d0f0
push esi
call sym.DNSAPI.dll_AddRefQueryBlobEx
cmp dword [ebp - 0x1cc], 0
jne 0x5fd8d0cd
mov ecx, ebx
call fcn.5fd8cc26
mov edi, eax
mov eax, dword [0x5fde9010]
cmp eax, 0x5fde9010
je 0x5fd8d0cd
test dword [eax + 0x1c], 0x400
jne 0x5fdafda8
lea eax, [esi + 0x44]
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_LeaveCriticalSection]
push 0x13
push 0xe58
push 0x5fd8d0f0
push esi
call sym.DNSAPI.dll_DeRefQueryBlobEx
jmp 0x5fd8a7ea
mov eax, dword [ecx + 0x24]
and eax, 0x20
jmp 0x5fd8a769
test dl, 0x10
jne 0x5fd8cd71
mov edx, dword [esi + 0x74]
and edx, 0x10000
xor eax, eax
or eax, edx
jne 0x5fd8cd71
mov edx, dword [ebp - 0x1c0]
call fcn.5fd90876
test eax, eax
je 0x5fd8a771
jmp 0x5fd8cd71
mov eax, 1
jmp 0x5fd8ce15
cmp dword [esi + 0x23c], 0
je 0x5fd8a795
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 0x244]
je 0x5fd8a6c2
jmp 0x5fd8a795
mov dword [esi + 0x234], edx
jmp 0x5fd8ceb4
mov dword [esi + 0x238], 1
mov dword [esi + 0x240], 1
jmp 0x5fd8cfd4
mov dword [ebp - 0x1cc], 1
call fcn.5fd8bb2b
mov eax, dword [ebp - 0x1b8]
test ebx, ebx
jne 0x5fdad020
mov dword [esi + 0x230], eax
mov ecx, dword [ebp - 0x1b4]
call fcn.5fd8b839
jmp 0x5fd8d090
cmp dword [esi + 0x26c], 0
je 0x5fd8cf71
cmp dword [esi + 0xb4], 0
jne 0x5fd8cf71
jmp 0x5fda7997
mov eax, dword [ebp - 0x1b4]
mov dword [eax + 0xe8], 0
jmp 0x5fd8cf81
mov edi, 0xe
jmp 0x5fd8a795
mov eax, 1
jmp 0x5fd8ce2b
mov edi, 0xe
jmp 0x5fd8a795
mov eax, 1
jmp 0x5fd8cee1
mov dword [esi + 0x234], eax
mov ecx, dword [ebp - 0x1b4]
call fcn.5fd8b839
xor ebx, ebx
jmp 0x5fd8d090
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x4b
call fcn.5fdc7d09
jmp 0x5fd8a6aa
mov edx, edi
mov ecx, 0x5fdafdc8
call fcn.5fd9a75d
jmp 0x5fd8a795
mov edx, edi
mov ecx, 0x5fdafdf0
call fcn.5fd9a75d
jmp 0x5fd8a795
push dword [eax + 0x14]
push dword [eax + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x4c
call fcn.5fdc44b5
jmp 0x5fd8a78a
mov eax, dword [0x5fde9010]
cmp eax, 0x5fde9010
je 0x5fdafc4c
test dword [eax + 0x1c], 0x4000
je 0x5fdafc4c
push dword [eax + 0x14]
push dword [eax + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x4d
call fcn.5fdc44b5
mov edi, 0x5b4
mov dword [esi + 0x104], edi
jmp 0x5fd8a795
mov eax, 0xffff7fff
lock and dword [edx], eax
mov edx, ebx
mov ecx, esi
call fcn.5fd8de33
mov ecx, dword [ebp - 0x1b4]
call fcn.5fd8b839
push 4
push 0xdf4
push 0x5fd8d0f0
push esi
call sym.DNSAPI.dll_DeRefQueryBlobEx
mov eax, dword [0x5fde9010]
cmp eax, 0x5fde9010
je 0x5fdafcb4
test dword [eax + 0x1c], 0x400
je 0x5fdafcb4
push dword [eax + 0x14]
push dword [eax + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x4e
call fcn.5fdc44b5
mov edi, 0x4c7
mov edx, edi
mov ecx, 0x5fdbd29c
call fcn.5fd9a75d
jmp 0x5fd8a795
mov edx, ebx
mov ecx, esi
call fcn.5fd8de33
mov ecx, dword [ebp - 0x1b4]
call fcn.5fd8b839
push 4
push 0xe00
push 0x5fd8d0f0
push esi
call sym.DNSAPI.dll_DeRefQueryBlobEx
mov eax, dword [0x5fde9010]
cmp eax, 0x5fde9010
je 0x5fdafd1a
test dword [eax + 0x1c], 0x400
je 0x5fdafd1a
push dword [eax + 0x14]
push dword [eax + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x4f
call fcn.5fdc44b5
mov edi, 0xe
mov edx, edi
mov ecx, 0x5fdbd29c
call fcn.5fd9a75d
jmp 0x5fd8a795
push dword [esi + 0x100]
push dword [esi + 0xb4]
mov eax, dword [ebp - 0x1c0]
movzx eax, ax
push eax
sub esp, 8
mov edx, dword [esi + 0x68]
call fcn.5fdcaf44
jmp 0x5fd8cff3
mov eax, dword [0x5fde9010]
cmp eax, 0x5fde9010
je 0x5fdafd81
test dword [eax + 0x1c], 0x100
je 0x5fdafd81
push edi
push dword [eax + 0x14]
push dword [eax + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x50
call fcn.5fdc7d09
mov ecx, dword [ebp - 0x1b4]
call fcn.5fd8b839
push 4
push 0xe2b
push 0x5fd8d0f0
push esi
call sym.DNSAPI.dll_DeRefQueryBlobEx
mov edi, 0xe
jmp 0x5fd8a795
push edi
push esi
push 0
push ebx
push dword [eax + 0x14]
push dword [eax + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x51
call fcn.5fdce4f9
jmp 0x5fd8d0cd
mov ecx, eax
call fcn.5fd8e689
jmp 0x5fd8a7ad
push edi
mov ecx, edi
call fcn.5fde12f9
push eax
push dword [esi + 0x14]
push dword [esi + 0x10]
mov edx, 0x5fdbd57c
mov ecx, 0x52
call fcn.5fdc8272
jmp 0x5fd8a7ea