Function at 0x10046120
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10097811
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, 0x10
mov edx, 2
mul edx
seto cl
push 0x100da440
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov esi, 0x84
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 0x100461fa
mov edx, 0x100a2114
xor eax, eax
mov ecx, ebx
sub edx, ebx
mov edi, edi
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, 0xf
mov esi, edi
jl 0x100461d0
xor eax, eax
mov word [ebx + 0x1e], ax
xor edi, edi
mov dword [esp + 0x250], edi
xor ecx, ecx
mov eax, 0x4d
mov edx, 2
mul edx
seto cl
push 0x100da440
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov esi, 0x45
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 0x10046275
mov edx, 0x100a2138
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, 0x4c
mov esi, ebx
jl 0x10046246
mov ebx, dword [esp + 0x18]
xor eax, eax
mov word [edi + 0x98], ax
mov byte [esp + 0x250], 1
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3a94]
cmp ecx, edx
je 0x100462ba
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 0x100462bc
xor eax, eax
test eax, eax
sete byte [esp + 0x17]
mov byte [esp + 0x250], 0
test edi, edi
je 0x100462e0
push edi
call fcn.10079d09
add esp, 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x250], 0xffffffff
test ebx, ebx
je 0x10046300
push ebx
call fcn.10079d09
add esp, 4
mov dword [esp + 0x20], 0
cmp byte [esp + 0x17], 0
je 0x10046426
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
lea esi, [eax + 0xe]
xor ecx, ecx
mov eax, 0x17
mov edx, 2
mul edx
seto cl
push 0x100da440
neg ecx
or ecx, eax
push ecx
call fcn.10079cfe
mov edi, eax
xor ebx, ebx
add esp, 8
mov dword [esp + 0x20], edi
cmp edi, ebx
je 0x1004637c
mov edx, 0x100a21d4
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, 0x16
mov esi, ebx
jl 0x10046352
xor eax, eax
mov word [edi + 0x2c], ax
xor ebx, ebx
mov dword [esp + 0x250], 2
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3aa0]
cmp ecx, edx
je 0x100463b2
mov eax, dword [0x100e3898]
xor eax, dword [0x100e3894]
push edi
add eax, ecx
lea ecx, [esp + 0x38]
push ecx
call eax
mov dword [esp + 0x250], 0xffffffff
cmp edi, ebx
je 0x100463ce
push edi
call fcn.10079d09
add esp, 4
mov dword [esp + 0x20], ebx
mov edx, dword [0x100e38a0]
xor edx, dword [0x100e389c]
mov ecx, dword [0x100e3aa4]
cmp ecx, edx
je 0x10046426
mov eax, dword [0x100e3898]
xor eax, dword [0x100e3894]
add eax, ecx
lea ecx, [esp + 0x34]
push ecx
call eax
cmp eax, ebx
je 0x10046426
lea edx, [esp + 0x24]
push edx
lea edi, [esp + 0x1c]
lea eax, [esp + 0x38]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebx
call fcn.10013e60
add esp, 4
cmp dword [esp + 0x18], ebx
je 0x10046426
mov eax, 1
jmp 0x10046428
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