Function at 0x57e830
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
mov esi, ecx
mov dword [esp + 8], 0x11
push edi
mov dword [esp + 0x10], 0xe100e1
xor ecx, ecx
mov dword [esp + 0x14], 0xf500ee
mov dword [esp + 0x18], 0xed00f2
mov dword [esp + 0x1c], 0xe200fa
mov dword [esp + 0x20], 0xf700e3
mov dword [esp + 0x24], 0xe000fd
mov dword [esp + 0x28], 0xe300ea
mov dword [esp + 0x2c], 0xfd00e4
mov dword [esp + 0x30], 0xba00eb
lea eax, [ecx + 0xa9]
xor word [esp + ecx*2 + 0x10], ax
inc ecx
mov eax, dword [esp + 0xc]
cmp ecx, eax
jb 0x57e890
xor ecx, ecx
mov word [esp + eax*2 + 0x10], cx
lea ecx, [esp + 0x10]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x57e8b2
mov eax, dword [esi + 0x10]
sub ecx, edx
sar ecx, 1
mov edx, esi
cmp dword [esi + 0x14], 8
jb 0x57e8ce
mov edx, dword [esi]
cmp eax, ecx
jne 0x57e8f1
push eax
lea eax, [esp + 0x14]
push eax
push edx
call fcn.004090d0
add esp, 0xc
test eax, eax
jne 0x57e8f1
mov eax, SysReAllocString
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xa
mov dword [esp + 0x10], 0xe100e1
mov dword [esp + 0xc], eax
xor ecx, ecx
mov dword [esp + 0x14], 0xf500ee
mov dword [esp + 0x18], 0xfb00f2
mov dword [esp + 0x1c], 0xf500fc
mov dword [esp + 0x20], 0xe100e3
mov dword [esp + 0x24], 0xb3
nop dword [eax]
lea eax, [ecx + 0xa9]
xor word [esp + ecx*2 + 0x10], ax
inc ecx
mov eax, dword [esp + 0xc]
cmp ecx, eax
jb 0x57e930
xor ecx, ecx
mov word [esp + eax*2 + 0x10], cx
lea ecx, [esp + 0x10]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x57e952
mov eax, dword [esi + 0x10]
sub ecx, edx
sar ecx, 1
mov edx, esi
cmp dword [esi + 0x14], 8
jb 0x57e96e
mov edx, dword [esi]
cmp eax, ecx
jne 0x57e991
push eax
lea eax, [esp + 0x14]
push eax
push edx
call fcn.004090d0
add esp, 0xc
test eax, eax
jne 0x57e991
mov eax, reloc.WS2_32.dll_closesocket
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x12
mov dword [esp + 0x10], 0xe100e1
mov dword [esp + 0xc], eax
xor ecx, ecx
mov dword [esp + 0x14], 0xf500ee
mov dword [esp + 0x18], 0xe200f2
mov dword [esp + 0x1c], 0xf300e0
mov dword [esp + 0x20], 0xfe00f0
mov dword [esp + 0x24], 0xf900ec
mov dword [esp + 0x28], 0xf500f4
mov dword [esp + 0x2c], 0xf100ff
mov dword [esp + 0x30], 0xff00f7
mov dword [esp + 0x34], 0xbb
nop dword [eax]
lea eax, [ecx + 0xa9]
xor word [esp + ecx*2 + 0x10], ax
inc ecx
mov eax, dword [esp + 0xc]
cmp ecx, eax
jb 0x57e9f0
xor ecx, ecx
mov word [esp + eax*2 + 0x10], cx
lea ecx, [esp + 0x10]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x57ea12
mov eax, dword [esi + 0x10]
sub ecx, edx
sar ecx, 1
mov edx, esi
cmp dword [esi + 0x14], 8
jb 0x57ea2e
mov edx, dword [esi]
cmp eax, ecx
jne 0x57ea51
push eax
lea eax, [esp + 0x14]
push eax
push edx
call fcn.004090d0
add esp, 0xc
test eax, eax
jne 0x57ea51
mov eax, reloc.OLEAUT32.dll_SysReAllocString
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], 0x11
mov dword [esp + 0x10], 0xe100e1
mov dword [esp + 0x14], 0xf500ee
mov dword [esp + 0x18], 0xed00f2
mov dword [esp + 0x1c], 0xf100e3
mov dword [esp + 0x20], 0xe100e2
mov dword [esp + 0x24], 0xe700f6
mov dword [esp + 0x28], 0xe400ea
mov dword [esp + 0x2c], 0xf700f8
mov dword [esp + 0x30], 0xba00ed
call fcn.00403e20
mov edi, eax
mov edx, edi
lea eax, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x57eab1
sub edx, eax
mov eax, dword [esi + 0x10]
sar edx, 1
cmp dword [esi + 0x14], 8
jb 0x57eacb
mov esi, dword [esi]
cmp eax, edx
jne 0x57eaea
push eax
push edi
push esi
call fcn.004090d0
add esp, 0xc
test eax, eax
jne 0x57eaea
mov eax, SysReAllocString
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret