Function at 0x4c5300
Capabilities:
Encode data using xor
Hash data with crc32
Terminate process

Disassembly:
sub esp, 0x228
mov eax, dword [0x6009e4]
xor eax, esp
mov dword [esp + 0x224], eax
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x7c]
mov esi, ecx
push 0xc
push eax
mov ebp, edx
mov dword [esp + 0x18], esi
call fcn.004e2870
push dword [esi + 0x38]
lea eax, [esp + 0x1bc]
push dword [esi + 0x50]
push dword [esi + 0x30]
push 0x61f890
push 0x80
push eax
call fcn.00401140
mov esi, eax
lea eax, [esp + 0x38]
push eax
call fcn.004d5fe0
add esp, 0x24
lea eax, [esp + 0x1b0]
push esi
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004d6040
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.004d5ec0
mov ebx, dword [sym.imp.WS2_32.dll_htons]
add esp, 8
push 8
call ebx
push 0x2112a442
mov word [esp + 0x9c], ax
call dword [sym.imp.WS2_32.dll_htonl]
cmp dword [esp + 0x23c], 0
mov esi, 0x14
movq xmm0, qword [esp + 0x7c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x84]
movq qword [esp + 0xa0], xmm0
lea edi, [esi - 0x10]
mov dword [esp + 0xa8], eax
jle 0x4c5493
nop dword [eax]
lea eax, [esp + 0x7c]
mov ecx, ebp
push eax
lea edx, [esp + 0x1a0]
call fcn.004c4e20
add esp, 4
mov edi, eax
push 0x12
call ebx
push edi
mov word [esp + esi + 0x9c], ax
call ebx
mov word [esp + esi + 0x9a], ax
test edi, edi
jle 0x4c542f
lea eax, [esp + 0x19c]
mov edx, edi
push edi
lea ecx, [esp + 0xa0]
push eax
add ecx, esi
call fcn.00401000
add esp, 8
add edi, 4
mov eax, edi
and eax, reloc.WS2_32.dll_closesocket
jns 0x4c5440
dec eax
or eax, 0xfffffffc
inc eax
mov ecx, 4
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x4c5454
dec ecx
or ecx, 0xfffffffc
inc ecx
lea eax, [ecx + edi]
mov dword [esp + 0x14], eax
test ecx, ecx
jle 0x4c547b
push ecx
lea ecx, [esp + 0x9c]
lea eax, [edi + esi]
add eax, ecx
push 0
push eax
call fcn.005869c0
mov eax, dword [esp + 0x20]
add esp, 0xc
add esi, eax
add ebp, 0x1c
sub dword [esp + 0x23c], 1
jne 0x4c53e0
mov edi, 4
mov ebp, dword [esp + 0x10]
push 6
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x14], eax
call ebx
push dword [esp + 0x14]
mov word [esp + esi + 0x9c], ax
call ebx
mov word [esp + esi + 0x9a], ax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4c54e3
push eax
push dword [esp + 0x14]
lea ecx, [esp + 0xa4]
mov edx, eax
add ecx, esi
call fcn.00401000
mov eax, dword [esp + 0x1c]
add esp, 8
lea edx, [eax + 4]
mov eax, edx
and eax, reloc.WS2_32.dll_closesocket
jns 0x4c54f4
dec eax
or eax, 0xfffffffc
inc eax
mov ecx, edi
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x4c5505
dec ecx
or ecx, 0xfffffffc
inc ecx
lea eax, [ecx + edx]
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x4c552c
push ecx
lea eax, [edx + esi]
lea ecx, [esp + 0x9c]
add eax, ecx
push 0
push eax
call fcn.005869c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
add esi, eax
mov eax, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x50]
push 0x14
mov dword [esp + 0x14], eax
call ebx
push dword [esp + 0x14]
mov word [esp + esi + 0x9c], ax
call ebx
mov word [esp + esi + 0x9a], ax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4c557a
push eax
push dword [esp + 0x14]
lea ecx, [esp + 0xa4]
mov edx, eax
add ecx, esi
call fcn.00401000
mov eax, dword [esp + 0x1c]
add esp, 8
lea edx, [eax + 4]
mov eax, edx
and eax, reloc.WS2_32.dll_closesocket
jns 0x4c558b
dec eax
or eax, 0xfffffffc
inc eax
mov ecx, edi
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x4c559c
dec ecx
or ecx, 0xfffffffc
inc ecx
lea eax, [ecx + edx]
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x4c55c3
push ecx
lea eax, [edx + esi]
lea ecx, [esp + 0x9c]
add eax, ecx
push 0
push eax
call fcn.005869c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
add esi, eax
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x48]
push 0x15
mov dword [esp + 0x14], eax
call ebx
push dword [esp + 0x14]
mov word [esp + esi + 0x9c], ax
call ebx
mov word [esp + esi + 0x9a], ax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4c5611
push eax
push dword [esp + 0x14]
lea ecx, [esp + 0xa4]
mov edx, eax
add ecx, esi
call fcn.00401000
mov eax, dword [esp + 0x1c]
add esp, 8
lea ecx, [eax + 4]
mov eax, ecx
and eax, reloc.WS2_32.dll_closesocket
jns 0x4c5622
dec eax
or eax, 0xfffffffc
inc eax
sub edi, eax
and edi, reloc.WS2_32.dll_closesocket
jns 0x4c5631
dec edi
or edi, 0xfffffffc
inc edi
lea eax, [edi + ecx]
mov dword [esp + 0x10], eax
test edi, edi
jle 0x4c5658
lea eax, [ecx + esi]
push edi
lea ecx, [esp + 0x9c]
add eax, ecx
push 0
push eax
call fcn.005869c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
add esi, eax
mov dword [esp + 0x10], 0x14
lea eax, [esi + 4]
push eax
call ebx
push 8
mov word [esp + 0x9e], ax
call ebx
push 0x14
mov word [esp + esi + 0x9c], ax
call ebx
mov word [esp + esi + 0x9a], ax
call fcn.004e60d0
push 0
mov edi, eax
call fcn.004d13c0
push eax
push 0x10
lea eax, [esp + 0x94]
push eax
push edi
call fcn.004e62b0
add esp, 0x14
lea eax, [esp + 0x98]
push esi
push eax
push edi
call fcn.004e64c0
add esp, 0xc
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0xa0]
add eax, esi
push eax
push edi
call fcn.004e6200
add esp, 0xc
push edi
call fcn.004e6060
add esi, 0x18
add esp, 4
lea eax, [esi - 0xc]
push eax
call ebx
push 0x8028
mov word [esp + 0x9e], ax
call ebx
push 4
mov word [esp + esi + 0x9c], ax
call ebx
or ecx, 0xffffffff
mov word [esp + esi + 0x9a], ax
lea edi, [esp + 0x98]
mov edx, esi
test esi, esi
je 0x4c573a
nop dword [eax]
movsx eax, byte [edi]
lea edi, [edi + 1]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x5f05a8]
sub edx, 1
jne 0x4c5720
xor ecx, 0xacabaab1
push ecx
call dword [sym.imp.WS2_32.dll_htonl]
mov ebx, dword [esp + 0x240]
mov dword [esp + esi + 0x9c], eax
add esi, 8
test ebx, ebx
je 0x4c57d1
cmp dword [esp + 0x244], 0
je 0x4c57b0
push 8
call fcn.0058d200
mov edi, eax
add esp, 4
test edi, edi
je 0x4c5804
mov eax, dword [esp + 0x244]
lea edx, [esp + 0x7c]
xorps xmm0, xmm0
movq qword [edi], xmm0
mov dword [edi], ebx
mov dword [edi + 4], eax
mov ecx, dword [ebp + 0x40]
push 1
push 0xc
call fcn.004affa0
add esp, 8
test eax, eax
je 0x4c57d1
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], 2
jmp 0x4c57d1
mov ecx, dword [ebp + 0x40]
lea edx, [esp + 0x7c]
push 1
push 0xc
call fcn.004affa0
add esp, 8
test eax, eax
je 0x4c57d1
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], 0
push 2
push esi
lea eax, [esp + 0xa0]
push eax
push 1
push 0
push dword [ebp + 0x2c]
call fcn.004aa1b0
mov ecx, dword [esp + 0x24c]
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00584a28
add esp, 0x228
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x4c4
mov edx, 0x61c4e8
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x4c4
push 0x61c504
push 0x61c520
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
int3