Function at 0x10005998
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a9c68
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x100d6084]
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 0x100bfa5f
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.10002840
mov dword [ebp - 4], 0
mov esi, dword [0x100db3c0]
test esi, esi
jne 0x100054c5
lea eax, [ebp - 0x2c]
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], esi
mov ecx, edi
push eax
mov byte [edi], 0
call fcn.10005d60
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x10005b9e
inc ecx
push ecx
jmp 0x10005b93
cmp byte [0x100db453], 0
je 0x10005504
mov ecx, 0xd78c9c
call fcn.1001c540
mov edi, eax
test edi, edi
je 0x10005501
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10005501
push 4
add edi, 0xb7c
push edi
call ebx
test eax, eax
jne 0x10005501
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.0x10005519.3
movzx eax, byte [eax + 0x10005c48]
jmp dword [eax*4 + 0x10005bc0]
movaps xmm0, xmmword [0x100c8d00]
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 0x10005531
mov byte [ebp - 0x40], 0
jmp 0x10005b61
movaps xmm0, xmmword [0x100c84d0]
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 0x10005558
mov byte [ebp - 0x40], 0
jmp 0x10005b61
mov cl, 0x4c
mov dword [ebp - 0x3c], 0x3e2d074c
mov dword [ebp - 0x38], 0x96c3f39
xor eax, eax
mov dword [ebp - 0x34], 0x222d203f
mov word [ebp - 0x30], 0x38
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x1000559f
mov cl, byte [ebp - 0x3c]
jmp 0x10005590
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10005b64
movaps xmm0, xmmword [0x100c8ca0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x40], 0
nop dword [eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xf
jb 0x100055c0
mov byte [ebp - 0x40], 0
jmp 0x10005b61
mov cl, 0x23
mov bh, 0x4c
mov al, 1
mov dl, 0x3e
mov bl, 0x2d
mov ah, 0x28
mov ch, cl
mov dh, 0x22
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 0x10005b64
mov cl, 0x58
mov dword [ebp - 0x3c], 0x343d1c58
mov dword [ebp - 0x38], 0x1b782b37
xor eax, eax
mov dword [ebp - 0x34], 0x342c2b39
mov word [ebp - 0x30], 0x3d
nop dword [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x1000559f
mov cl, byte [ebp - 0x3c]
jmp 0x10005640
mov bh, 0x41
mov al, 0x17
mov cl, 0x6c
mov dl, 0x27
mov bl, 0x33
mov ah, 0x2e
mov ch, 0x32
mov dh, 0x35
jmp 0x100055e6
movaps xmm0, xmmword [0x100c85f0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x1414
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 0x10005680
mov byte [ebp - 0x3e], 0
jmp 0x10005b61
mov byte [ebp - 0x38], 0x2c
mov al, 0x64
xor al, byte [ebp - 0x38]
mov cl, 0x49
xor cl, byte [ebp - 0x38]
mov dl, 0x40
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x5f
mov ah, 0xc
mov al, byte [ebp - 0x56]
mov ch, 0x6d
mov byte [ebp - 0x36], cl
mov dh, 0x4e
mov cl, byte [ebp - 0x38]
mov bh, 0x55
xor al, cl
mov byte [ebp - 0x55], 0x5f
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 0x10005605
mov cl, 4
mov dword [ebp - 0x3c], 0x65764004
mov dword [ebp - 0x38], 0x246a6b63
xor eax, eax
mov dword [ebp - 0x34], 0x61726547
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000571f
mov cl, byte [ebp - 0x3c]
jmp 0x10005710
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10005b64
movaps xmm0, xmmword [str.5qPYZF]
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 0x10005738
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10005b64
mov cl, 0x41
mov dword [ebp - 0x3c], 0x35200341
mov dword [ebp - 0x38], 0x27242d35
xor eax, eax
mov dword [ebp - 0x34], 0x252d2428
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000571f
mov cl, byte [ebp - 0x3c]
jmp 0x10005770
mov byte [ebp - 0x38], 0x16
mov al, 0x59
xor al, byte [ebp - 0x38]
mov cl, 0x64
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0x75
mov bl, 0x36
mov byte [ebp - 0x55], 0x77
mov ah, 0x57
mov byte [ebp - 0x2e], 0
mov dh, 0x73
mov byte [ebp - 0x2e], 0
mov bh, 0x78
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 0x10005602
movaps xmm0, xmmword [0x100c87b0]
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 0x100057d8
mov byte [ebp - 0x40], 0
jmp 0x10005b61
mov cl, 0x19
mov dword [ebp - 0x3c], 0x7b765e19
mov dword [ebp - 0x38], 0x39777075
xor eax, eax
mov dword [ebp - 0x34], 0x777c6b58
mov word [ebp - 0x30], 0x78
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x1000559f
mov cl, byte [ebp - 0x3c]
jmp 0x10005810
movaps xmm0, xmmword [0x100c83a0]
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 0x10005834
mov byte [ebp - 0x40], 0
jmp 0x10005b61
movaps xmm0, xmmword [0x100c7f30]
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 0x10005857
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10005b64
mov cl, 0x63
mov dword [ebp - 0x3c], 0x13022d63
mov dword [ebp - 0x38], 0x4310060a
xor eax, eax
mov dword [ebp - 0x34], 0x4110c24
mov word [ebp - 0x30], 6
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x1000559f
mov cl, byte [ebp - 0x3c]
jmp 0x10005890
movaps xmm0, xmmword [0x100c8c50]
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 0x100058b4
mov byte [ebp - 0x40], 0
jmp 0x10005b61
movaps xmm0, xmmword [0x100c8040]
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 0x100058d7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10005b64
movaps xmm0, xmmword [str.0e_fe]
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 0x10005901
mov byte [ebp - 0x40], 0
jmp 0x10005b61
mov byte [ebp - 0x38], 0x38
mov al, 0x6b
xor al, byte [ebp - 0x38]
mov cl, 0x56
mov byte [ebp - 0x37], al
mov dl, 0x57
mov al, byte [ebp - 0x38]
mov bl, 0x4f
mov ah, 0x18
mov byte [ebp - 0x2f], 0
mov ch, 0x6f
mov byte [ebp - 0x2f], 0
mov dh, 0x59
mov bh, 0x4a
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 0x10005602
mov cl, 0x63
mov dword [ebp - 0x3c], 0xd0c3163
mov dword [ebp - 0x38], 0x43081102
xor eax, eax
mov dword [ebp - 0x34], 0x70d022f
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000571f
mov cl, byte [ebp - 0x3c]
jmp 0x10005970
mov cl, 0x23
mov bh, 0x51
mov al, 0x10
mov dl, 0x35
mov bl, cl
mov ah, 0x34
mov ch, 0x30
mov dh, 0x3c
jmp 0x100055e6
movaps xmm0, xmmword [0x100c8bc0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x56
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x100059b0
mov byte [ebp - 0x3f], 0
jmp 0x10005b61
movaps xmm0, xmmword [0x100c90d0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x58317570
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x100059e0
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10005b64
movaps xmm0, xmmword [0x100c8cb0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x7b125653
mov word [ebp - 0x40], 0x7b
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x10005a13
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10005b64
movaps xmm0, xmmword [0x100c8440]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x2c450104
mov word [ebp - 0x40], 0x2c2c
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 0x10005a50
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10005b64
movaps xmm0, xmmword [0x100c8980]
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 0x10005a80
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10005b64
movaps xmm0, xmmword [0x100c91e0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x7024
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10005ab0
mov byte [ebp - 0x3e], 0
jmp 0x10005b61
mov dh, 0x61
mov byte [ebp - 0x2d], 0
mov al, 0x31
mov byte [ebp - 0x34], dh
mov ah, 0xe
mov byte [ebp - 0x2d], 0
mov cl, 0x13
mov dl, 8
mov bl, 0x12
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0xf
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 0x10005b64
mov cl, 0x14
mov dword [ebp - 0x3c], 0x7d675d14
mov dword [ebp - 0x38], 0x7a7b7b78
xor eax, eax
mov dword [ebp - 0x34], 0x71665534
mov word [ebp - 0x30], 0x757a
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x10005b34
mov cl, byte [ebp - 0x3c]
jmp 0x10005b25
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10005b64
movaps xmm0, xmmword [0x100c80c0]
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 0x10005b50
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10005f60
lea eax, [ebp - 0x2c]
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov ecx, edi
push eax
mov byte [edi], 0
call fcn.10005d60
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x10005b9e
inc eax
push eax
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
call fcn.10002720
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.1006e175
mov esp, ebp
pop ebp
ret 4