Function at 0x437020
Capabilities:
Encode data using xor
Initialize winsock library

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x466ed8
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x68
push esi
push edi
mov eax, dword [0x47d040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x4853ac]
test ecx, ecx
je 0x43706b
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x4005c
call fcn.0044097f
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
push 0x4005c
push 0
push edi
mov dword [ebp - 4], 0
call fcn.00443480
mov dword [edi], vtable.CAPISocket.0
xorps xmm0, xmm0
movups xmmword [edi + 0xc], xmm0
mov dword [edi + 0x1c], 0
add esp, 0xc
mov dword [edi + 0x20], 0xf
mov byte [edi + 0xc], 0
mov byte [ebp - 4], 1
push 0x40000
mov dword [edi + 0x4002c], 0x47113c
mov dword [edi + 0x40030], 0x40000
call fcn.00440c0e
add esp, 4
mov dword [edi + 0x40034], eax
mov dword [edi + 0x40038], 0
mov dword [edi + 0x4003c], 0
lea esi, [edi + 0x40044]
mov byte [ebp - 4], 2
push 8
mov dword [ebp - 0x18], esi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.0044097f
add esp, 4
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax], esi
lea eax, [edi + 0xc]
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], 0
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 0xf
jbe 0x437156
mov eax, dword [eax]
mov byte [eax], 0
mov eax, dword [0x485360]
mov ecx, eax
inc eax
mov dword [edi + 0x24], 0
mov dword [0x485360], eax
test ecx, ecx
jne 0x437181
push 0x48ba58
push 0x101
call dword [sym.imp.WS2_32.dll_WSAStartup]
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
push eax
mov ecx, 0x487d80
mov dword [edi + 0x40040], 0
mov dword [edi + 0x40028], 0
mov dword [edi + 0x40058], 1
mov dword [0x4853ac], edi
call fcn.00434430
mov dword [ebp - 4], 3
call fcn.0043e4b0
cmp dword [ebp - 0x34], 0xf
lea ecx, [ebp - 0x48]
push eax
cmova ecx, dword [ebp - 0x48]
push ecx
push ecx
call fcn.00404320
mov dword [ebp - 4], 0xffffffff
mov esi, eax
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xf
jbe 0x437216
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x43720c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4372a3
push ecx
push edx
call fcn.00440c00
add esp, 8
test esi, esi
je 0x43728f
movaps xmm0, xmmword [0x475ff0]
xor ecx, ecx
push 0x30
movups xmmword [ebp - 0x2c], xmm0
mov word [ebp - 0x1c], 0x6a
nop
mov al, byte [ebp - 0x2c]
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 0x10
jb 0x437230
movaps xmm0, xmmword [0x475ca0]
lea eax, [ebp - 0x2b]
movups xmmword [ebp - 0x5c], xmm0
xor ecx, ecx
mov byte [ebp - 0x1b], 0
movaps xmm0, xmmword [0x475df0]
push eax
push esi
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0x4e594f1c
mov dword [ebp - 0x38], 0x124e594a
mov dword [ebp - 0x34], 0x5819141c
mov word [ebp - 0x30], 0x15
nop dword [eax]
mov al, byte [ebp - 0x5c]
xor byte [ebp + ecx - 0x5b], al
inc ecx
cmp ecx, 0x2c
jae 0x4372a8
jmp 0x437280
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004498c1
sub esp, 0x18
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x5b]
mov ecx, esp
push eax
call fcn.00404fe0
lea eax, [ebp - 0x74]
push eax
call fcn.00430ee0
add esp, 0x20
mov ecx, eax
call fcn.00404ec0
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x74]
call fcn.00404f40
push 0
call fcn.00451183
int3