Function at 0x4526f7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x6b0d44]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x18], edx
mov edx, 0x80
mov dword [ebp - 0x1c], esi
push edi
mov ecx, dword [esi + 4]
test ecx, ecx
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x10]
cmove eax, edx
xor edi, edi
movzx edx, ax
or edx, 0x8000
push ebx
cmp dword [esi + 0xc], edi
jne 0x452746
push dword [ebp - 0x18]
jmp 0x45274a
mov dword [esi + 0xc], edi
push edi
call fcn.00480cf1
pop ecx
mov dword [ebp - 0x14], eax
pop ecx
cmp dword [ebp - 0x24], edi
jne 0x452830
add eax, 0x28
add eax, ebx
call fcn.0059c6e0
mov eax, dword [ebp - 0x14]
mov ecx, esp
add eax, 4
add eax, ebx
push 1
push 4
mov edx, eax
mov dword [ebp - 0x28], eax
call fcn.0046bf0b
mov edx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], edx
push eax
lea ecx, [edx + 4]
mov dword [edx], ecx
lea ecx, [edx + eax]
mov dword [ebp - 0x14], ecx
mov edx, eax
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0x18]
call section..text
mov edx, dword [ebp - 0x14]
push 4
push edx
call fcn.004a39d0
mov eax, dword [ebp - 0x14]
add esp, 0x18
mov ecx, dword [eax]
mov dword [ebp - 0x24], ecx
test ebx, ebx
jle 0x45280f
mov edx, ebx
mov ecx, edi
sar edx, 2
test edx, edx
jle 0x4527e2
mov esi, dword [ebp - 0x20]
lea ebx, [eax + 4]
mov eax, dword [esi + ecx*4]
xor eax, dword [ebp - 0x24]
inc ecx
mov dword [ebx], eax
lea ebx, [ebx + 4]
cmp ecx, edx
jl 0x4527cc
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0xc]
shl ecx, 2
cmp ecx, ebx
jge 0x45280f
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
mov eax, ecx
and eax, reloc.WS2_32.dll_closesocket
jns 0x4527fd
dec eax
or eax, 0xfffffffc
inc eax
mov al, byte [eax + edx]
xor al, byte [esi + ecx]
mov byte [edx + ecx + 4], al
inc ecx
cmp ecx, ebx
jl 0x4527ef
mov esi, dword [ebp - 0x1c]
mov ecx, dword [esi + 0x38]
call fcn.0046bff2
test eax, eax
je 0x4528a6
mov eax, dword [esi + 0x38]
test eax, eax
je 0x452828
mov edi, dword [eax]
push dword [ebp - 0x28]
push dword [ebp - 0x18]
jmp 0x452899
mov ecx, dword [esi]
call fcn.00471556
test eax, eax
je 0x4528b5
mov ecx, dword [esi + 0x38]
call fcn.0046bff2
test ebx, ebx
jle 0x452884
test eax, eax
je 0x452869
mov eax, dword [esi + 0x38]
test eax, eax
je 0x452856
mov ecx, dword [eax]
jmp 0x452858
mov ecx, edi
mov eax, dword [ebp - 0x14]
xor edx, edx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0045e4d6
pop ecx
pop ecx
mov ecx, dword [esi + 0x38]
call fcn.0046bff2
test eax, eax
je 0x4528a6
mov eax, dword [esi + 0x38]
test eax, eax
je 0x45287e
mov edi, dword [eax]
push ebx
push dword [ebp - 0x20]
jmp 0x452899
test eax, eax
je 0x4528a6
mov eax, dword [esi + 0x38]
test eax, eax
je 0x452891
mov edi, dword [eax]
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
xor edx, edx
mov ecx, edi
call fcn.0045e4d6
pop ecx
pop ecx
jmp 0x4528a9
xor eax, eax
inc eax
xor ebx, ebx
test eax, eax
sete bl
jmp 0x452935
mov eax, dword [ebp - 0x14]
add eax, ebx
push edi
mov dword [ebp - 0x18], eax
add eax, 0x10
push edi
push eax
call fcn.005d0f60
mov edx, dword [ebp - 0x18]
pop ecx
mov ecx, eax
call fcn.0046bf0b
mov ecx, eax
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x14]
push eax
push edx
mov edx, eax
mov dword [ebp - 0x1c], ecx
call section..text
mov ecx, dword [ebp - 0x1c]
mov edx, ebx
add ecx, dword [ebp - 0x14]
push ebx
push dword [ebp - 0x20]
call section..text
mov ecx, dword [esi + 0x38]
add esp, 0x18
call fcn.0046bff2
test eax, eax
je 0x452923
mov eax, dword [esi + 0x38]
test eax, eax
je 0x452910
mov edi, dword [eax]
push dword [ebp - 0x18]
xor edx, edx
mov ecx, edi
push dword [ebp - 0x1c]
call fcn.0045e4d6
pop ecx
pop ecx
jmp 0x452926
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x1c]
xor ebx, ebx
test eax, eax
sete bl
call fcn.0046bfb6
mov eax, ebx
lea esp, [ebp - 0x34]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059b3f0
mov esp, ebp
pop ebp
ret