Function at 0x100051c5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10075648
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x1009d084]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
push 0
push 0x100899ef
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
call fcn.100028b0
mov dword [ebp - 4], 0
mov esi, dword [0x100a23bc]
test esi, esi
jne 0x10005028
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10005980
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x100056ed
inc ecx
push ecx
jmp 0x100056e2
cmp byte [0x100a2432], 0
je 0x10005067
mov ecx, 0xd78c9c
call fcn.10014880
mov edi, eax
test edi, edi
je 0x10005064
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10005064
push 4
add edi, 0xb7c
push edi
call ebx
test eax, eax
jne 0x10005064
mov al, byte [edi]
mov byte [esi + 0x3a], al
mov edi, dword [ebp - 0x30]
movzx eax, byte [esi + 0x3a]
dec eax
cmp eax, 0x5d
ja case.0x1000507c.3
movzx eax, byte [eax + 0x10005798]
jmp dword [eax*4 + 0x10005710]
movaps xmm0, xmmword [0x10092510]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x10005094
mov byte [ebp - 0x40], 0
jmp 0x100056c1
movaps xmm0, xmmword [0x10092170]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x100050c0
mov byte [ebp - 0x40], 0
jmp 0x100056c1
mov cl, 0x4b
mov dword [ebp - 0x3c], 0x392a004b
mov dword [ebp - 0x38], 0xe6b383e
xor eax, eax
mov dword [ebp - 0x34], 0x252a2738
mov word [ebp - 0x30], 0x3f
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005104
mov cl, byte [ebp - 0x3c]
jmp 0x100050f5
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x100056c4
movaps xmm0, xmmword [0x100922d0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x10005121
mov byte [ebp - 0x40], 0
jmp 0x100056c1
mov cl, 0x65
mov bh, 0xa
mov al, 0x47
mov dl, 0x78
mov bl, 0x6b
mov ah, 0x6e
mov ch, cl
mov dh, 0x64
xor al, bh
mov byte [ebp - 0x30], 0
xor cl, bh
mov byte [ebp - 0x38], bh
xor dl, bh
mov byte [ebp - 0x37], al
xor bl, bh
mov byte [ebp - 0x30], 0
xor ah, bh
xor ch, bh
xor dh, bh
mov byte [ebp - 0x36], cl
mov byte [ebp - 0x33], ah
lea eax, [ebp - 0x37]
mov byte [ebp - 0x31], dh
mov byte [ebp - 0x32], ch
mov byte [ebp - 0x34], bl
mov byte [ebp - 0x35], dl
jmp 0x100056c4
mov cl, 0xc
mov dword [ebp - 0x3c], 0x6069480c
mov dword [ebp - 0x38], 0x4f2c7f63
xor eax, eax
mov dword [ebp - 0x34], 0x60787f6d
mov word [ebp - 0x30], 0x69
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005104
mov cl, byte [ebp - 0x3c]
jmp 0x100051a0
mov bh, 0x4e
mov al, 0x18
mov cl, 0x63
mov dl, 0x28
mov bl, 0x3c
mov ah, 0x21
mov ch, 0x3d
mov dh, 0x3a
jmp 0x10005147
movaps xmm0, xmmword [0x10092590]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x7b7b
mov byte [ebp - 0x3e], 0
nop dword [eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x100051e0
mov byte [ebp - 0x3e], 0
jmp 0x100056c1
mov byte [ebp - 0x38], 0x76
mov al, 0x3e
xor al, byte [ebp - 0x38]
mov cl, 0x13
xor cl, byte [ebp - 0x38]
mov dl, 0x1a
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 5
mov ah, 0x56
mov al, byte [ebp - 0x56]
mov ch, 0x37
mov byte [ebp - 0x36], cl
mov dh, 0x14
mov cl, byte [ebp - 0x38]
mov bh, 0xf
xor al, cl
mov byte [ebp - 0x55], 5
mov byte [ebp - 0x2f], al
xor bh, cl
mov al, byte [ebp - 0x55]
xor dl, cl
xor bl, cl
mov byte [ebp - 0x2d], 0
xor ah, cl
mov byte [ebp - 0x30], bh
xor ch, cl
mov byte [ebp - 0x2d], 0
xor dh, cl
xor al, cl
mov byte [ebp - 0x2e], al
jmp 0x10005166
mov cl, 0x65
mov dword [ebp - 0x3c], 0x4172165
mov dword [ebp - 0x38], 0x450b0a02
xor eax, eax
mov dword [ebp - 0x34], 0x130426
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000527f
mov cl, byte [ebp - 0x3c]
jmp 0x10005270
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x100056c4
movaps xmm0, xmmword [0x10091c80]
xor ecx, ecx
movups xmmword [ebp - 0x3c], xmm0
mov al, byte [ebp - 0x3c]
xor byte [ebp + ecx - 0x3b], al
inc ecx
cmp ecx, 0xe
jb 0x10005298
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x100056c4
mov cl, 0x45
mov dword [ebp - 0x3c], 0x31240745
mov dword [ebp - 0x38], 0x23202931
xor eax, eax
mov dword [ebp - 0x34], 0x2129202c
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000527f
mov cl, byte [ebp - 0x3c]
jmp 0x100052d0
mov byte [ebp - 0x38], 0x4a
mov al, 5
xor al, byte [ebp - 0x38]
mov cl, 0x38
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0x29
mov bl, 0x6a
mov byte [ebp - 0x55], 0x2b
mov ah, 0xb
mov byte [ebp - 0x2e], 0
mov dh, 0x2f
mov byte [ebp - 0x2e], 0
mov bh, 0x24
xor cl, al
xor bh, al
xor dl, al
xor bl, al
mov byte [ebp - 0x30], bh
xor ah, al
xor ch, al
xor dh, al
mov al, byte [ebp - 0x55]
xor al, byte [ebp - 0x38]
mov byte [ebp - 0x2f], al
jmp 0x10005163
movaps xmm0, xmmword [0x10091f40]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x10005338
mov byte [ebp - 0x40], 0
jmp 0x100056c1
mov cl, 0x40
mov dword [ebp - 0x3c], 0x222f0740
mov dword [ebp - 0x38], 0x602e292c
xor eax, eax
mov dword [ebp - 0x34], 0x2e253201
mov word [ebp - 0x30], 0x21
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005104
mov cl, byte [ebp - 0x3c]
jmp 0x10005370
movaps xmm0, xmmword [0x100921c0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x10005394
mov byte [ebp - 0x40], 0
jmp 0x100056c1
movaps xmm0, xmmword [str._iGNNKLM]
xor ecx, ecx
movups xmmword [ebp - 0x3c], xmm0
mov al, byte [ebp - 0x3c]
xor byte [ebp + ecx - 0x3b], al
inc ecx
cmp ecx, 0xe
jb 0x100053b7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x100056c4
mov cl, 0x29
mov dword [ebp - 0x3c], 0x59486729
mov dword [ebp - 0x38], 0x95a4c40
xor eax, eax
mov dword [ebp - 0x34], 0x4e5b466e
mov word [ebp - 0x30], 0x4c
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005104
mov cl, byte [ebp - 0x3c]
jmp 0x100053f0
movaps xmm0, xmmword [0x10092430]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x10005414
mov byte [ebp - 0x40], 0
jmp 0x100056c1
movaps xmm0, xmmword [str.sXTYN]
xor ecx, ecx
movups xmmword [ebp - 0x3c], xmm0
mov al, byte [ebp - 0x3c]
xor byte [ebp + ecx - 0x3b], al
inc ecx
cmp ecx, 0xe
jb 0x10005437
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x100056c4
movaps xmm0, xmmword [0x10092390]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x10005461
mov byte [ebp - 0x40], 0
jmp 0x100056c1
mov byte [ebp - 0x38], 0x54
mov al, 7
xor al, byte [ebp - 0x38]
mov cl, 0x3a
mov byte [ebp - 0x37], al
mov dl, 0x3b
mov al, byte [ebp - 0x38]
mov bl, 0x23
mov ah, 0x74
mov byte [ebp - 0x2f], 0
mov ch, 3
mov byte [ebp - 0x2f], 0
mov dh, 0x35
mov bh, 0x26
xor cl, al
xor dl, al
xor bl, al
xor ah, al
xor ch, al
xor dh, al
xor bh, al
mov byte [ebp - 0x30], bh
jmp 0x10005163
mov cl, 0x4d
mov dword [ebp - 0x3c], 0x23221f4d
mov dword [ebp - 0x38], 0x6d263f2c
xor eax, eax
mov dword [ebp - 0x34], 0x29232c01
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000527f
mov cl, byte [ebp - 0x3c]
jmp 0x100054d0
mov cl, 0x19
mov bh, 0x6b
mov al, 0x2a
mov dl, 0xf
mov bl, cl
mov ah, 0xe
mov ch, 0xa
mov dh, 6
jmp 0x10005147
movaps xmm0, xmmword [0x10091de0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x1b
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10005510
mov byte [ebp - 0x3f], 0
jmp 0x100056c1
movaps xmm0, xmmword [0x10091d30]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x39501411
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x10005540
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x100056c4
movaps xmm0, xmmword [0x10092280]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x78115550
mov word [ebp - 0x40], 0x78
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x10005573
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x100056c4
movaps xmm0, xmmword [str.T_a___1_:t_a__:e]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x1d743035
mov word [ebp - 0x40], 0x1d1d
mov byte [ebp - 0x3e], 0
nop word [eax + eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x15
jb 0x100055b0
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x100056c4
movaps xmm0, xmmword [0x10092140]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x637046
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x100055e0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x100056c4
movaps xmm0, xmmword [0x10092200]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x2276
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10005610
mov byte [ebp - 0x3e], 0
jmp 0x100056c1
mov dh, 0x1b
mov byte [ebp - 0x2d], 0
mov al, 0x4b
mov byte [ebp - 0x34], dh
mov ah, 0x74
mov byte [ebp - 0x2d], 0
mov cl, 0x69
mov dl, 0x72
mov bl, 0x68
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x75
mov byte [ebp - 0x2f], ah
xor cl, dh
lea eax, [ebp - 0x33]
xor dl, dh
mov byte [ebp - 0x32], cl
xor bl, dh
mov byte [ebp - 0x31], dl
xor ch, dh
mov byte [ebp - 0x30], bl
mov byte [ebp - 0x2e], ch
jmp 0x100056c4
mov cl, 0x4f
mov dword [ebp - 0x3c], 0x263c064f
mov dword [ebp - 0x38], 0x21202023
xor eax, eax
mov dword [ebp - 0x34], 0x2a3d0e6f
mov word [ebp - 0x30], 0x2e21
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x10005694
mov cl, byte [ebp - 0x3c]
jmp 0x10005685
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x100056c4
movaps xmm0, xmmword [0x10091cb0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
nop word [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xe
jb 0x100056b0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10005ae0
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10005980
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x100056ed
inc eax
push eax
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
call fcn.10002790
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1003a2a5
mov esp, ebp
pop ebp
ret 4