Function at 0x46535c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x6d1d44]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x24], eax
xor esi, esi
mov dword [ebp - 0x18], edx
xor eax, eax
mov dword [ebp - 0x20], edi
mov edx, 0x80
mov dword [ebp - 0x14], esi
mov ecx, dword [edi + 4]
test ecx, ecx
mov dword [ebp - 0x30], ecx
mov ecx, edi
cmove eax, edx
mov dword [ebp - 0x1c], esi
movzx eax, ax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], esi
call fcn.00484e2f
test eax, eax
jne 0x4653b3
push 0xfffffffffffffffc
pop eax
jmp 0x465762
cmp dword [edi + 0xc], esi
jne 0x4654d3
cmp dword [edi + 0x38], esi
je 0x4654b2
mov ebx, dword [ebp + 0xc]
cmp dword [edi + 0x3c], ebx
jge 0x4654b2
cmp dword [edi + 0x48], esi
jne 0x46549c
push ecx
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
push eax
push esi
mov edx, ebx
call fcn.00449aac
add esp, 0xc
test eax, eax
jne 0x4654b2
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
jae 0x465489
cmp ecx, 0xffffffff
jae 0x465420
or eax, 0xffffffff
sub eax, ecx
je 0x465420
cmp ecx, 0xffffffef
jae 0x465420
lea eax, [ecx + 0x10]
push eax
call fcn.005f0a50
pop ecx
mov ecx, dword [ebp - 0x1c]
jmp 0x465422
mov eax, esi
push esi
mov edx, ecx
mov ecx, eax
push esi
call fcn.00484c1e
add esp, 4
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x1c]
mov edx, ebx
push ecx
mov ecx, dword [ebp - 0x24]
push eax
call fcn.00449aac
add esp, 0xc
test eax, eax
jne 0x4654b2
mov eax, ebx
mov dword [edi + 0x4c], esi
cdq
lea ecx, [ebp - 0x10]
add dword [edi + 0x58], eax
mov eax, dword [ebp - 0x2c]
adc dword [edi + 0x5c], edx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
or edx, 0xc000
mov eax, dword [ebp - 0x1c]
push eax
push dword [ebp - 0x18]
mov dword [edi + 0x48], esi
mov dword [ebp + 0xc], eax
call fcn.0049d00d
pop ecx
pop ecx
mov ecx, eax
cdq
add dword [edi + 0x58], eax
mov dword [ebp - 0x14], ecx
adc dword [edi + 0x5c], edx
jmp 0x4654ae
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
cmp eax, dword [edi + 0x44]
jle 0x4654b2
mov eax, dword [edi + 0x40]
mov dword [edi + 0x4c], esi
jmp 0x4654a9
cmp dword [edi + 0x3c], ebx
jge 0x4654b2
mov eax, dword [edi + 0x48]
test eax, eax
jle 0x4654b2
dec eax
mov ecx, esi
mov dword [edi + 0x48], eax
test ecx, ecx
jne 0x4654dd
mov ebx, dword [ebp + 0xc]
push ebx
push dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x10]
or edx, 0x8000
call fcn.0049d00d
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
jmp 0x4654e0
mov ebx, dword [ebp + 0xc]
push ebx
mov dword [edi + 0xc], esi
push esi
jmp 0x4654b9
mov ebx, dword [ebp + 0xc]
cmp dword [ebp - 0x30], esi
jne 0x46560b
lea edx, [ecx + 4]
xor eax, eax
add edx, ebx
inc eax
mov dword [ebp - 0x1c], edx
cmp edx, 0xffff
jge 0x46552d
cmp edx, 0xffffffdb
jae 0x465515
lea eax, [ecx + 0x28]
add eax, ebx
call fcn.005b9800
mov edx, dword [ebp - 0x1c]
xor eax, eax
mov ecx, esp
inc eax
jmp 0x465517
mov ecx, esi
push eax
push 4
call fcn.00484c1e
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
lea eax, [ecx + 4]
mov dword [ecx], eax
jmp 0x465563
cmp edx, 0xffffffff
jae 0x465551
push 0xfffffffffffffffb
pop eax
sub eax, ebx
sub eax, ecx
je 0x465551
cmp edx, 0xffffffef
jae 0x465551
lea eax, [ecx + 0x14]
add eax, ebx
push eax
call fcn.005f0a50
mov edx, dword [ebp - 0x1c]
pop ecx
jmp 0x465553
mov eax, esi
push esi
push esi
mov ecx, eax
call fcn.00484c1e
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
push eax
lea edx, [ecx + eax]
mov dword [ebp - 0x28], edx
lea edx, [ebp - 0x10]
push edx
mov edx, eax
call section..text
push 4
push dword [ebp - 0x28]
call fcn.004bf9b0
mov edx, dword [ebp - 0x28]
add esp, 0x10
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
test ebx, ebx
jle 0x4655ea
mov eax, ebx
mov ecx, esi
sar eax, 2
mov dword [ebp - 0x30], eax
test eax, eax
jle 0x4655c0
mov edi, dword [ebp - 0x24]
lea ebx, [edx + 4]
mov edx, eax
mov eax, dword [edi + ecx*4]
xor eax, dword [ebp - 0x34]
inc ecx
mov dword [ebx], eax
lea ebx, [ebx + 4]
cmp ecx, edx
jl 0x4655a7
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x28]
shl ecx, 2
cmp ecx, ebx
jge 0x4655ea
mov edi, dword [ebp - 0x24]
mov eax, ecx
and eax, reloc.WS2_32.dll_closesocket
jns 0x4655d8
dec eax
or eax, 0xfffffffc
inc eax
mov al, byte [eax + edx]
xor al, byte [ecx + edi]
mov byte [edx + ecx + 4], al
inc ecx
cmp ecx, ebx
jl 0x4655ca
mov edi, dword [ebp - 0x20]
mov ecx, dword [edi + 0x78]
call fcn.00484e2f
test eax, eax
je 0x465715
mov eax, dword [edi + 0x78]
test eax, eax
je 0x465603
mov esi, dword [eax]
push dword [ebp - 0x1c]
jmp 0x465705
mov ecx, dword [edi]
call fcn.0048cc5d
test eax, eax
je 0x465690
mov ecx, dword [edi + 0x78]
call fcn.00484e2f
test ebx, ebx
jle 0x46565f
test eax, eax
je 0x465644
mov eax, dword [edi + 0x78]
test eax, eax
je 0x465631
mov ecx, dword [eax]
jmp 0x465633
mov ecx, esi
mov eax, dword [ebp - 0x14]
xor edx, edx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0047587a
pop ecx
pop ecx
mov ecx, dword [edi + 0x78]
call fcn.00484e2f
test eax, eax
je 0x465681
mov eax, dword [edi + 0x78]
test eax, eax
je 0x465659
mov esi, dword [eax]
push ebx
push dword [ebp - 0x24]
jmp 0x465674
test eax, eax
je 0x465681
mov eax, dword [edi + 0x78]
test eax, eax
je 0x46566c
mov esi, dword [eax]
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
xor edx, edx
mov ecx, esi
call fcn.0047587a
pop ecx
pop ecx
jmp 0x465684
xor eax, eax
inc eax
xor ebx, ebx
test eax, eax
sete bl
jmp 0x465727
mov ecx, dword [ebp - 0x14]
lea edx, [ebx + ecx]
mov dword [ebp - 0x20], edx
cmp edx, 0xffffffff
jae 0x4656ba
mov eax, ebx
not eax
sub eax, ecx
je 0x4656ba
cmp edx, 0xffffffef
jae 0x4656ba
lea eax, [edx + 0x10]
push eax
call fcn.005f0a50
mov edx, dword [ebp - 0x20]
pop ecx
jmp 0x4656bc
mov eax, esi
push esi
push esi
mov ecx, eax
call fcn.00484c1e
mov ecx, eax
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x14]
push eax
push edx
mov edx, eax
mov dword [ebp - 0x18], ecx
call section..text
mov ecx, dword [ebp - 0x18]
mov edx, ebx
add ecx, dword [ebp - 0x14]
push ebx
push dword [ebp - 0x24]
call section..text
mov ecx, dword [edi + 0x78]
add esp, 0x18
call fcn.00484e2f
test eax, eax
je 0x465715
mov eax, dword [edi + 0x78]
test eax, eax
je 0x465702
mov esi, dword [eax]
push dword [ebp - 0x20]
push dword [ebp - 0x18]
xor edx, edx
mov ecx, esi
call fcn.0047587a
pop ecx
pop ecx
jmp 0x465718
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x18]
xor ebx, ebx
test eax, eax
sete bl
call fcn.00484cd3
mov eax, dword [ebp + 0xc]
cdq
mov ecx, eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x14]
cdq
mov dword [ebp - 0x34], ecx
mov esi, eax
add esi, ecx
mov ecx, edx
adc ecx, dword [ebp - 0x20]
add dword [edi + 0x68], esi
adc dword [edi + 0x6c], ecx
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x465754
call fcn.00484cd3
jmp 0x465760
add eax, dword [ebp - 0x34]
adc edx, dword [ebp - 0x20]
add dword [edi + 0x58], eax
adc dword [edi + 0x5c], edx
mov eax, ebx
lea esp, [ebp - 0x44]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005b8900
mov esp, ebp
pop ebp
ret