Function at 0x462565
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x6ccd44]
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.004813e2
test eax, eax
jne 0x4625bc
push 0xfffffffffffffffc
pop eax
jmp 0x46296b
cmp dword [edi + 0xc], esi
jne 0x4626dc
cmp dword [edi + 0x38], esi
je 0x4626bb
mov ebx, dword [ebp + 0xc]
cmp dword [edi + 0x3c], ebx
jge 0x4626bb
cmp dword [edi + 0x48], esi
jne 0x4626a5
push ecx
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
push eax
push esi
mov edx, ebx
call fcn.004492ce
add esp, 0xc
test eax, eax
jne 0x4626bb
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
jae 0x462692
cmp ecx, 0xffffffff
jae 0x462629
or eax, 0xffffffff
sub eax, ecx
je 0x462629
cmp ecx, 0xffffffef
jae 0x462629
lea eax, [ecx + 0x10]
push eax
call fcn.005eae30
pop ecx
mov ecx, dword [ebp - 0x1c]
jmp 0x46262b
mov eax, esi
push esi
mov edx, ecx
mov ecx, eax
push esi
call fcn.004811d1
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.004492ce
add esp, 0xc
test eax, eax
jne 0x4626bb
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.00498c98
pop ecx
pop ecx
mov ecx, eax
cdq
add dword [edi + 0x58], eax
mov dword [ebp - 0x14], ecx
adc dword [edi + 0x5c], edx
jmp 0x4626b7
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
cmp eax, dword [edi + 0x44]
jle 0x4626bb
mov eax, dword [edi + 0x40]
mov dword [edi + 0x4c], esi
jmp 0x4626b2
cmp dword [edi + 0x3c], ebx
jge 0x4626bb
mov eax, dword [edi + 0x48]
test eax, eax
jle 0x4626bb
dec eax
mov ecx, esi
mov dword [edi + 0x48], eax
test ecx, ecx
jne 0x4626e6
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.00498c98
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
jmp 0x4626e9
mov ebx, dword [ebp + 0xc]
push ebx
mov dword [edi + 0xc], esi
push esi
jmp 0x4626c2
mov ebx, dword [ebp + 0xc]
cmp dword [ebp - 0x30], esi
jne 0x462814
lea edx, [ecx + 4]
xor eax, eax
add edx, ebx
inc eax
mov dword [ebp - 0x1c], edx
cmp edx, 0xffff
jge 0x462736
cmp edx, 0xffffffdb
jae 0x46271e
lea eax, [ecx + 0x28]
add eax, ebx
call fcn.005b4450
mov edx, dword [ebp - 0x1c]
xor eax, eax
mov ecx, esp
inc eax
jmp 0x462720
mov ecx, esi
push eax
push 4
call fcn.004811d1
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
lea eax, [ecx + 4]
mov dword [ecx], eax
jmp 0x46276c
cmp edx, 0xffffffff
jae 0x46275a
push 0xfffffffffffffffb
pop eax
sub eax, ebx
sub eax, ecx
je 0x46275a
cmp edx, 0xffffffef
jae 0x46275a
lea eax, [ecx + 0x14]
add eax, ebx
push eax
call fcn.005eae30
mov edx, dword [ebp - 0x1c]
pop ecx
jmp 0x46275c
mov eax, esi
push esi
push esi
mov ecx, eax
call fcn.004811d1
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.004baa80
mov edx, dword [ebp - 0x28]
add esp, 0x10
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
test ebx, ebx
jle 0x4627f3
mov eax, ebx
mov ecx, esi
sar eax, 2
mov dword [ebp - 0x30], eax
test eax, eax
jle 0x4627c9
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 0x4627b0
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x28]
shl ecx, 2
cmp ecx, ebx
jge 0x4627f3
mov edi, dword [ebp - 0x24]
mov eax, ecx
and eax, reloc.WS2_32.dll_closesocket
jns 0x4627e1
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 0x4627d3
mov edi, dword [ebp - 0x20]
mov ecx, dword [edi + 0x78]
call fcn.004813e2
test eax, eax
je 0x46291e
mov eax, dword [edi + 0x78]
test eax, eax
je 0x46280c
mov esi, dword [eax]
push dword [ebp - 0x1c]
jmp 0x46290e
mov ecx, dword [edi]
call fcn.00488b7a
test eax, eax
je 0x462899
mov ecx, dword [edi + 0x78]
call fcn.004813e2
test ebx, ebx
jle 0x462868
test eax, eax
je 0x46284d
mov eax, dword [edi + 0x78]
test eax, eax
je 0x46283a
mov ecx, dword [eax]
jmp 0x46283c
mov ecx, esi
mov eax, dword [ebp - 0x14]
xor edx, edx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00472587
pop ecx
pop ecx
mov ecx, dword [edi + 0x78]
call fcn.004813e2
test eax, eax
je 0x46288a
mov eax, dword [edi + 0x78]
test eax, eax
je 0x462862
mov esi, dword [eax]
push ebx
push dword [ebp - 0x24]
jmp 0x46287d
test eax, eax
je 0x46288a
mov eax, dword [edi + 0x78]
test eax, eax
je 0x462875
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.00472587
pop ecx
pop ecx
jmp 0x46288d
xor eax, eax
inc eax
xor ebx, ebx
test eax, eax
sete bl
jmp 0x462930
mov ecx, dword [ebp - 0x14]
lea edx, [ebx + ecx]
mov dword [ebp - 0x20], edx
cmp edx, 0xffffffff
jae 0x4628c3
mov eax, ebx
not eax
sub eax, ecx
je 0x4628c3
cmp edx, 0xffffffef
jae 0x4628c3
lea eax, [edx + 0x10]
push eax
call fcn.005eae30
mov edx, dword [ebp - 0x20]
pop ecx
jmp 0x4628c5
mov eax, esi
push esi
push esi
mov ecx, eax
call fcn.004811d1
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.004813e2
test eax, eax
je 0x46291e
mov eax, dword [edi + 0x78]
test eax, eax
je 0x46290b
mov esi, dword [eax]
push dword [ebp - 0x20]
push dword [ebp - 0x18]
xor edx, edx
mov ecx, esi
call fcn.00472587
pop ecx
pop ecx
jmp 0x462921
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x18]
xor ebx, ebx
test eax, eax
sete bl
call fcn.00481286
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 0x46295d
call fcn.00481286
jmp 0x462969
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.005b35b0
mov esp, ebp
pop ebp
ret