Function at 0x10045b00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1009786c
mov eax, dword fs:[0]
push eax
sub esp, 0x238
mov eax, dword [0x100b0380]
xor eax, esp
mov dword [esp + 0x230], eax
push ebx
push esi
push edi
mov eax, dword [0x100b0380]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
push 0x208
xor edi, edi
lea eax, [esp + 0x38]
push edi
push eax
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0x208
call fcn.1007dcf0
xor ecx, ecx
add esp, 0xc
mov eax, 0x12
mov edx, 2
mul edx
seto cl
push 0x100da440
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
lea esi, [edi + 0x22]
neg ecx
or ecx, eax
push ecx
call fcn.10079cfe
mov ebx, eax
add esp, 8
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
cmp ebx, edi
je 0x10045bda
mov edx, 0x100a1f0c
xor eax, eax
mov ecx, ebx
sub edx, ebx
lea esp, [esp]
mov di, word [edx + ecx]
xor di, si
mov word [ecx], di
mov edi, eax
xor edi, 0x2a
add edi, esi
and edi, 0xff
inc eax
add ecx, 2
cmp eax, 0x11
mov esi, edi
jl 0x10045bb0
xor eax, eax
mov word [ebx + 0x22], ax
xor edi, edi
mov dword [esp + 0x250], edi
xor ecx, ecx
mov eax, 0x1b
mov edx, 2
mul edx
seto cl
push 0x100da440
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov esi, 0xf5
neg ecx
or ecx, eax
push ecx
call fcn.10079cfe
mov edi, eax
add esp, 8
mov dword [esp + 0x28], edi
test edi, edi
je 0x10045c52
mov edx, 0x100a1f30
xor eax, eax
mov ecx, edi
sub edx, edi
mov bx, word [edx + ecx]
xor bx, si
mov word [ecx], bx
mov ebx, eax
xor ebx, 0x2a
add ebx, esi
and ebx, 0xff
inc eax
add ecx, 2
cmp eax, 0x1a
mov esi, ebx
jl 0x10045c26
mov ebx, dword [esp + 0x18]
xor eax, eax
mov word [edi + 0x34], ax
mov byte [esp + 0x250], 1
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3a94]
cmp ecx, edx
je 0x10045c97
mov eax, dword [0x100e3898]
xor eax, dword [0x100e3894]
lea edx, [esp + 0x34]
add eax, ecx
lea ecx, [esp + 0x30]
push ecx
push edx
lea ecx, [esp + 0x34]
push ecx
push ebx
push edi
push connect
call eax
jmp 0x10045c99
xor eax, eax
test eax, eax
sete byte [esp + 0x17]
mov byte [esp + 0x250], 0
test edi, edi
je 0x10045cbd
push edi
call fcn.10079d09
add esp, 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x250], 0xffffffff
test ebx, ebx
je 0x10045cdd
push ebx
call fcn.10079d09
add esp, 4
mov dword [esp + 0x20], 0
cmp byte [esp + 0x17], 0
je 0x10045e0b
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
lea esi, [eax + 0x3d]
xor ecx, ecx
mov eax, 0x1d
mov edx, 2
mul edx
seto cl
push 0x100da440
neg ecx
or ecx, eax
push ecx
call fcn.10079cfe
mov ebx, eax
add esp, 8
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x10045d58
mov edx, 0x100a1f68
xor eax, eax
mov ecx, ebx
sub edx, ebx
lea ecx, [ecx]
mov di, word [edx + ecx]
xor di, si
mov word [ecx], di
mov edi, eax
xor edi, 0x2a
add edi, esi
and edi, 0xff
inc eax
add ecx, 2
cmp eax, 0x1c
mov esi, edi
jl 0x10045d30
xor eax, eax
mov word [ebx + 0x38], ax
mov dword [esp + 0x250], 2
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3aa0]
cmp ecx, edx
je 0x10045d8e
mov eax, dword [0x100e3898]
xor eax, dword [0x100e3894]
push ebx
add eax, ecx
lea ecx, [esp + 0x38]
push ecx
call eax
mov dword [esp + 0x250], 0xffffffff
test ebx, ebx
je 0x10045dae
push ebx
call fcn.10079d09
add esp, 4
mov dword [esp + 0x20], 0
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3aa4]
cmp ecx, edx
je 0x10045e0b
mov eax, dword [0x100e3898]
xor eax, dword [0x100e3894]
add eax, ecx
lea ecx, [esp + 0x34]
push ecx
call eax
test eax, eax
je 0x10045e0b
lea edx, [esp + 0x24]
xor esi, esi
push edx
lea edi, [esp + 0x1c]
lea eax, [esp + 0x38]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], esi
call fcn.10013e60
add esp, 4
cmp dword [esp + 0x18], esi
je 0x10045e0b
mov eax, 1
jmp 0x10045f5d
mov ebx, 0
mov edi, 0x100a1fa8
sub edi, 0x38f4430
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
lea esi, [ebx + 0xf]
je 0x10045e88
xor ecx, ecx
mov eax, 0x3f
mov edx, 2
mul edx
seto cl
push 0x100da440
neg ecx
or ecx, eax
push ecx
call fcn.10079cfe
add esp, 8
mov ebx, eax
mov dword [esp + 0x20], ebx
test eax, eax
je 0x10045e88
xor ecx, ecx
lea edx, [edi + 0x38f4430]
lea ecx, [ecx]
mov di, word [edx]
xor di, si
mov word [eax + ecx*2], di
mov edi, ecx
xor edi, 0x2a
add edi, esi
and edi, 0xff
inc ecx
add edx, 2
cmp ecx, 0x3e
mov esi, edi
jl 0x10045e60
xor ecx, ecx
mov word [eax + 0x7c], cx
mov dword [esp + 0x250], 3
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3a94]
cmp ecx, edx
je 0x10045ed4
mov eax, dword [0x100e3898]
xor eax, dword [0x100e3894]
lea edx, [esp + 0x34]
add eax, ecx
lea ecx, [esp + 0x30]
push ecx
push edx
lea ecx, [esp + 0x34]
push ecx
push 0x1009edfc
push ebx
push connect
call eax
jmp 0x10045ed6
xor eax, eax
test eax, eax
sete byte [esp + 0x17]
mov dword [esp + 0x250], 0xffffffff
test ebx, ebx
je 0x10045efd
push ebx
call fcn.10079d09
add esp, 4
mov dword [esp + 0x20], 0
cmp byte [esp + 0x17], 0
je 0x10045f5b
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3aa4]
cmp ecx, edx
je 0x10045f5b
mov eax, dword [0x100e3898]
xor eax, dword [0x100e3894]
add eax, ecx
lea ecx, [esp + 0x34]
push ecx
call eax
xor esi, esi
cmp eax, esi
je 0x10045f5b
lea edx, [esp + 0x24]
push edx
lea edi, [esp + 0x1c]
lea eax, [esp + 0x38]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], esi
call fcn.10013e60
add esp, 4
cmp dword [esp + 0x18], esi
jne 0x10045e01
xor eax, eax
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x230]
xor ecx, esp
call fcn.10079a05
mov esp, ebp
pop ebp
ret