Function at 0x1004a7a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1022b7fb
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x1029912c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0x118], edi
xor ecx, ecx
mov eax, 8
mov dword [ebp - 0xc8], 0x7d711f12
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc4], 0xd323577
mov byte [ebp - 0xc0], 0x51
mov word [ebp - 0xbf], cx
mov byte [ebp - 0xbd], cl
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0xc8], al
inc ecx
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
jb 0x1004a810
mov byte [ebp + eax - 0xc8], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xa8], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004a851
sub ecx, edx
lea eax, [ebp - 0xc8]
push ecx
push eax
lea ecx, [ebp - 0xb8]
call fcn.100025c0
mov dword [ebp - 4], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
mov byte [ebp - 4], 2
xor ecx, ecx
movaps xmm0, xmmword [0x1027a740]
mov eax, 0x10
mov dword [ebp - 0x28], eax
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x14], 0x59
mov word [ebp - 0x13], cx
mov byte [ebp - 0x11], cl
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0x24], al
inc ecx
mov eax, dword [ebp - 0x28]
cmp ecx, eax
jb 0x1004a8d2
mov byte [ebp + eax - 0x24], 0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xdc], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004a907
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0xec]
call fcn.100025c0
mov byte [ebp - 4], 3
xor ecx, ecx
movaps xmm0, xmmword [0x1027a620]
mov eax, 0x14
mov dword [ebp - 0x58], eax
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x313a3f2d
mov byte [ebp - 0x40], 0x5d
mov word [ebp - 0x3f], cx
mov byte [ebp - 0x3d], cl
nop dword [eax + eax]
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0x54], al
inc ecx
mov eax, dword [ebp - 0x58]
cmp ecx, eax
jb 0x1004a950
mov byte [ebp + eax - 0x54], 0
lea ecx, [ebp - 0x54]
mov dword [ebp - 0xc4], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004a985
sub ecx, edx
lea eax, [ebp - 0x54]
push ecx
push eax
lea ecx, [ebp - 0xd4]
call fcn.100025c0
push ecx
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xec]
mov ecx, getpeername
push eax
lea edx, [ebp - 0xd4]
call fcn.1004bfe0
mov byte [ebp - 4], 3
add esp, 0xc
mov edx, dword [ebp - 0xc0]
cmp edx, 0x10
jb 0x1004aa02
mov ecx, dword [ebp - 0xd4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004a9f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b27e
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], 0
cmp edx, 0x10
jb 0x1004aa5b
mov ecx, dword [ebp - 0xec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004aa51
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b283
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov eax, 0xa
mov dword [ebp - 0xc8], 0x253f2908
mov dword [ebp - 0xcc], eax
xor ecx, ecx
mov dword [ebp - 0xc4], 0x231a2b3b
mov dword [ebp - 0xc0], 0x532034
nop word [eax + eax]
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0xc8], al
inc ecx
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
jb 0x1004aa90
mov byte [ebp + eax - 0xc8], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xdc], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004aad1
sub ecx, edx
lea eax, [ebp - 0xc8]
push ecx
push eax
lea ecx, [ebp - 0xec]
call fcn.100025c0
mov byte [ebp - 4], 5
mov eax, 0x22
movaps xmm0, xmmword [0x1027a620]
xor ecx, ecx
movups xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x114], eax
movaps xmm0, xmmword [0x1027a630]
movups xmmword [ebp - 0x100], xmm0
mov dword [ebp - 0xf0], 0x6b191a
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0x110], al
inc ecx
mov eax, dword [ebp - 0x114]
cmp ecx, eax
jb 0x1004ab24
mov byte [ebp + eax - 0x110], 0
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x18], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004ab60
sub ecx, edx
lea eax, [ebp - 0x110]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.100025c0
push ecx
lea eax, [ebp - 0xbc]
mov ecx, getpeername
push eax
lea eax, [ebp - 0xec]
push eax
lea edx, [ebp - 0x28]
call fcn.1004c190
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov esi, eax
cmp edx, 0x10
jb 0x1004abce
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004abc4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b288
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
cmp edx, 0x10
jb 0x1004ac1e
mov ecx, dword [ebp - 0xec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004ac14
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b28d
push edx
push ecx
call fcn.101d50ac
add esp, 8
cmp esi, 2
jne 0x1004b02a
mov eax, dword fs:[0x2c]
mov ecx, dword [0x102a7d90]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x102ad7ac]
cmp eax, dword [ecx + 4]
jle 0x1004ac8b
push 0x102ad7ac
call fcn.101d529a
add esp, 4
cmp dword [0x102ad7ac], 0xffffffff
jne 0x1004ac8b
push 0x10232f30
mov dword [0x102ad7c0], 0
mov dword [0x102ad7c4], 0xf
mov byte [0x102ad7b0], 0
call fcn.101d56bf
push 0x102ad7ac
call fcn.101d5250
add esp, 8
cmp dword [0x102ad7c0], 0
jne 0x1004ad19
lea ecx, [ebp - 0xec]
call fcn.1004a400
mov esi, eax
cmp esi, 0x102ad7b0
je 0x1004acdf
mov ecx, 0x102ad7b0
call fcn.10002520
movups xmm0, xmmword [esi]
movups xmmword [0x102ad7b0], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x102ad7c0], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0xd8]
cmp edx, 0x10
jb 0x1004ad19
mov ecx, dword [ebp - 0xec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004ad0f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b292
push edx
push ecx
call fcn.101d50ac
add esp, 8
movaps xmm0, xmmword [0x1027a6c0]
xor ecx, ecx
mov dword [ebp - 0x108], 0x17
movups xmmword [ebp - 0x104], xmm0
mov dword [ebp - 0xf4], 0x2808063c
mov dword [ebp - 0xf0], 0x60323f38
nop word [eax + eax]
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0x104], al
inc ecx
mov eax, dword [ebp - 0x108]
cmp ecx, eax
jb 0x1004ad50
mov byte [ebp + eax - 0x104], 0
lea edx, [ebp - 0xc0]
lea eax, [ebp - 0x104]
push 0x102ad7b0
lea ecx, [ebp - 0x54]
mov dword [ebp - 0xc0], eax
call fcn.1004e270
add esp, 4
mov byte [ebp - 4], 6
xor ecx, ecx
movaps xmm0, xmmword [0x1027a740]
mov eax, 0x10
mov dword [ebp - 0x28], eax
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x14], 0x59
mov word [ebp - 0x13], cx
mov byte [ebp - 0x11], cl
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0x24], al
inc ecx
mov eax, dword [ebp - 0x28]
cmp ecx, eax
jb 0x1004adb3
mov byte [ebp + eax - 0x24], 0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xdc], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004ade8
sub ecx, edx
lea eax, [ebp - 0x24]
push ecx
push eax
lea ecx, [ebp - 0xec]
call fcn.100025c0
push ecx
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0xec]
mov ecx, reloc.WS2_32.dll_closesocket
push eax
lea edx, [ebp - 0x54]
call fcn.1004bfe0
mov byte [ebp - 4], 6
add esp, 0xc
mov edx, dword [ebp - 0xd8]
cmp edx, 0x10
jb 0x1004ae62
mov ecx, dword [ebp - 0xec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004ae58
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b297
push edx
push ecx
call fcn.101d50ac
add esp, 8
movaps xmm0, xmmword [0x1027a6c0]
mov eax, 0x25
movups xmmword [ebp - 0x38], xmm0
xor ecx, ecx
mov dword [ebp - 0x3c], eax
movaps xmm0, xmmword [0x1027a650]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x1f0e0906
mov dword [ebp - 0x14], 0x6e1e
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0x38], al
inc ecx
mov eax, dword [ebp - 0x3c]
cmp ecx, eax
jb 0x1004ae90
mov byte [ebp + eax - 0x38], 0
lea edx, [ebp - 0xc0]
lea eax, [ebp - 0x38]
push 0x102ad7b0
lea ecx, [ebp - 0x70]
mov dword [ebp - 0xc0], eax
call fcn.1004e270
add esp, 4
mov byte [ebp - 4], 8
mov eax, 0xa
mov dword [ebp - 0xcc], eax
xor ecx, ecx
mov dword [ebp - 0xc8], 0x253f2908
mov dword [ebp - 0xc4], 0x231a2b3b
mov dword [ebp - 0xc0], 0x532034
lea eax, [ecx + 0x49]
xor byte [ebp + ecx - 0xc8], al
inc ecx
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
jb 0x1004aef2
mov byte [ebp + eax - 0xc8], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xdc], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004af33
sub ecx, edx
lea eax, [ebp - 0xc8]
push ecx
push eax
lea ecx, [ebp - 0xec]
call fcn.100025c0
push ecx
lea eax, [ebp - 0xbc]
mov ecx, reloc.WS2_32.dll_closesocket
push eax
lea eax, [ebp - 0xec]
push eax
lea edx, [ebp - 0x70]
call fcn.1004c190
mov edx, dword [ebp - 0xd8]
add esp, 0xc
cmp edx, 0x10
jb 0x1004afa8
mov ecx, dword [ebp - 0xec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004af9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b29c
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x1004afe0
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004afd6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b2a1
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
cmp edx, 0x10
jb 0x1004b02a
mov ecx, dword [ebp - 0x54]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004b020
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b2a6
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xc0], ecx
test ecx, ecx
je 0x1004b199
lea esi, [ebp - 0x13]
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
shl al, 2
lea ecx, [eax + edx]
mov eax, dword [ebp - 0xc0]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0xc0], eax
test eax, eax
jne 0x1004b041
lea eax, [ebp - 0x13]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
cmp esi, eax
je 0x1004b0a1
sub eax, esi
lea ecx, [ebp - 0xec]
push eax
push esi
call fcn.100025c0
lea eax, [ebp - 0xec]
mov byte [ebp - 4], 9
push eax
lea edx, [ebp - 0xb8]
lea ecx, [ebp - 0x54]
call fcn.1004e3f0
add esp, 4
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0xd8]
cmp edx, 0x10
jb 0x1004b0fb
mov ecx, dword [ebp - 0xec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004b0f1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b2ab
push edx
push ecx
call fcn.101d50ac
add esp, 8
xor eax, eax
mov dword [ebp - 0xdc], 0
cmp dword [0x102ad63c], eax
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0xd8], 0xf
setne al
mov byte [ebp - 0xec], 0
push eax
push 3
call fcn.1003e5e0
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc0]
add ecx, 0
adc eax, 0x1100001
push eax
push ecx
lea ecx, [ebp - 0x70]
call fcn.10012630
add esp, 0x10
lea ecx, [ebp - 0x88]
call fcn.10002520
movups xmm0, xmmword [ebp - 0x70]
lea ecx, [ebp - 0x70]
mov byte [ebp - 0x70], 0
movups xmmword [ebp - 0x88], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [ebp - 0x78], xmm0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.10002520
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 2
call fcn.10002520
lea eax, [ebp - 0x88]
mov ecx, edi
push eax
call fcn.10006410
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [edi + 0x18]
call fcn.10006410
mov edx, dword [ebp - 0x8c]
cmp edx, 0x10
jb 0x1004b1f4
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004b1ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b2b0
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov edx, dword [ebp - 0x74]
cmp edx, 0x10
jb 0x1004b22b
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004b221
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b2b5
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov edx, dword [ebp - 0xa4]
cmp edx, 0x10
jb 0x1004b261
mov ecx, dword [ebp - 0xb8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004b257
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004b2ba
push edx
push ecx
call fcn.101d50ac
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101d506b
mov esp, ebp
pop ebp
ret
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
call fcn.101f0b28
int3