Function at 0x100051c5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100795e8
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x100a1084]
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 0x1008d9ef
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 [0x100a63bc]
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 [0x100a6436], 0
je 0x10005067
mov ecx, 0xd78c9c
call fcn.10015da0
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 [0x10095ef0]
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 [0x10096050]
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, 0x46
mov dword [ebp - 0x3c], 0x34270d46
mov dword [ebp - 0x38], 0x3663533
xor eax, eax
mov dword [ebp - 0x34], 0x28272a35
mov word [ebp - 0x30], 0x32
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 [0x10096380]
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, 0x75
mov bh, 0x1a
mov al, 0x57
mov dl, 0x68
mov bl, 0x7b
mov ah, 0x7e
mov ch, cl
mov dh, 0x74
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, 6
mov dword [ebp - 0x3c], 0x6a634206
mov dword [ebp - 0x38], 0x45267569
xor eax, eax
mov dword [ebp - 0x34], 0x6a727567
mov word [ebp - 0x30], 0x63
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, 0x60
mov al, 0x36
mov cl, 0x4d
mov dl, 6
mov bl, 0x12
mov ah, 0xf
mov ch, 0x13
mov dh, 0x14
jmp 0x10005147
movaps xmm0, xmmword [0x10096460]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x5353
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], 0x78
mov al, 0x30
xor al, byte [ebp - 0x38]
mov cl, 0x1d
xor cl, byte [ebp - 0x38]
mov dl, 0x14
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0xb
mov ah, 0x58
mov al, byte [ebp - 0x56]
mov ch, 0x39
mov byte [ebp - 0x36], cl
mov dh, 0x1a
mov cl, byte [ebp - 0x38]
mov bh, 1
xor al, cl
mov byte [ebp - 0x55], 0xb
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, 3
mov dword [ebp - 0x3c], 0x62714703
mov dword [ebp - 0x38], 0x236d6c64
xor eax, eax
mov dword [ebp - 0x34], 0x66756240
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 [str.O_v__o_r.____]
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, 0x5b
mov dword [ebp - 0x3c], 0x2f3a195b
mov dword [ebp - 0x38], 0x3d3e372f
xor eax, eax
mov dword [ebp - 0x34], 0x3f373e32
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], 0x5e
mov al, 0x11
xor al, byte [ebp - 0x38]
mov cl, 0x2c
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0x3d
mov bl, 0x7e
mov byte [ebp - 0x55], 0x3f
mov ah, 0x1f
mov byte [ebp - 0x2e], 0
mov dh, 0x3b
mov byte [ebp - 0x2e], 0
mov bh, 0x30
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 [0x10096400]
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, 0x44
mov dword [ebp - 0x3c], 0x262b0344
mov dword [ebp - 0x38], 0x642a2d28
xor eax, eax
mov dword [ebp - 0x34], 0x2a213605
mov word [ebp - 0x30], 0x25
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 [0x100964d0]
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 [0x10095ca0]
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, 0xf
mov dword [ebp - 0x3c], 0x7f6e410f
mov dword [ebp - 0x38], 0x2f7c6a66
xor eax, eax
mov dword [ebp - 0x34], 0x687d6048
mov word [ebp - 0x30], 0x6a
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005104
mov cl, byte [ebp - 0x3c]
jmp 0x100053f0
movaps xmm0, xmmword [0x10096440]
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 [0x10095c60]
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 [0x10095d80]
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], 0x33
mov al, 0x60
xor al, byte [ebp - 0x38]
mov cl, 0x5d
mov byte [ebp - 0x37], al
mov dl, 0x5c
mov al, byte [ebp - 0x38]
mov bl, 0x44
mov ah, 0x13
mov byte [ebp - 0x2f], 0
mov ch, 0x64
mov byte [ebp - 0x2f], 0
mov dh, 0x52
mov bh, 0x41
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, 0x56
mov dword [ebp - 0x3c], 0x38390456
mov dword [ebp - 0x38], 0x763d2437
xor eax, eax
mov dword [ebp - 0x34], 0x3238371a
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, 0x24
mov bh, 0x56
mov al, 0x17
mov dl, 0x32
mov bl, cl
mov ah, 0x33
mov ch, 0x37
mov dh, 0x3b
jmp 0x10005147
movaps xmm0, xmmword [0x100961f0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x2b
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 [0x10096070]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x137a3e3b
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 [0x10096430]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x69004441
mov word [ebp - 0x40], 0x69
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 [0x10096140]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0xb622623
mov word [ebp - 0x40], 0xb0b
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 [0x10095dc0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x594a7c
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 [0x100961d0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x2175
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, 0x4e
mov byte [ebp - 0x2d], 0
mov al, 0x1e
mov byte [ebp - 0x34], dh
mov ah, 0x21
mov byte [ebp - 0x2d], 0
mov cl, 0x3c
mov dl, 0x27
mov bl, 0x3d
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x20
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, 0x58
mov dword [ebp - 0x3c], 0x312b1158
mov dword [ebp - 0x38], 0x36373734
xor eax, eax
mov dword [ebp - 0x34], 0x3d2a1978
mov word [ebp - 0x30], 0x3936
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 [0x10095d30]
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.1003e245
mov esp, ebp
pop ebp
ret 4