Function at 0x1000587b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a9ca8
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 [0x100dafa4]
test esi, esi
jne 0x100054d5
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.10005dd0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x10005c0e
inc ecx
push ecx
jmp 0x10005c03
cmp byte [0x100db41d], 0
je 0x10005514
mov ecx, 0xd78c9c
call fcn.1001c490
mov edi, eax
test edi, edi
je 0x10005511
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10005511
push 4
add edi, 0xb7c
push edi
call ebx
test eax, eax
jne 0x10005511
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.0x10005529.3
movzx eax, byte [eax + 0x10005cb8]
jmp dword [eax*4 + 0x10005c30]
movaps xmm0, xmmword [0x100c9470]
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 0x10005541
mov byte [ebp - 0x40], 0
jmp 0x10005bd1
movaps xmm0, xmmword [str.w2eW:]
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 0x10005568
mov byte [ebp - 0x40], 0
jmp 0x10005bd1
mov cl, 0x10
mov dword [ebp - 0x3c], 0x62715b10
mov dword [ebp - 0x38], 0x55306365
xor eax, eax
mov dword [ebp - 0x34], 0x7e717c63
mov word [ebp - 0x30], 0x64
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100055af
mov cl, byte [ebp - 0x3c]
jmp 0x100055a0
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c9080]
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 0x100055d0
mov byte [ebp - 0x40], 0
jmp 0x10005bd1
mov bh, 0x64
mov byte [ebp - 0x30], 0
mov cl, 0xb
mov byte [ebp - 0x38], bh
xor ah, ah
mov al, 0x29
mov ch, cl
mov dl, 0x16
mov bl, 5
xor al, bh
xor ah, bh
mov byte [ebp - 0x37], al
mov dh, 0xa
mov byte [ebp - 0x33], ah
xor cl, bh
lea eax, [ebp - 0x37]
xor dl, bh
mov byte [ebp - 0x36], cl
xor bl, bh
mov byte [ebp - 0x35], dl
xor ch, bh
mov byte [ebp - 0x34], bl
xor dh, bh
mov byte [ebp - 0x32], ch
mov byte [ebp - 0x31], dh
jmp 0x10005bd4
mov cl, 0x70
mov dword [ebp - 0x3c], 0x1c153470
mov dword [ebp - 0x38], 0x3350031f
xor eax, eax
mov dword [ebp - 0x34], 0x1c040311
mov word [ebp - 0x30], 0x15
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100055af
mov cl, byte [ebp - 0x3c]
jmp 0x10005647
mov bh, 0x61
mov al, 0x37
mov cl, 0x4c
mov dl, 7
mov bl, 0x13
mov ah, 0xe
mov ch, 0x12
mov dh, 0x15
xor al, bh
mov byte [ebp - 0x30], 0
xor ah, bh
mov byte [ebp - 0x37], al
xor cl, bh
mov byte [ebp - 0x33], ah
xor dl, bh
mov byte [ebp - 0x38], bh
xor bl, bh
mov byte [ebp - 0x36], cl
xor ch, bh
mov byte [ebp - 0x35], dl
xor dh, bh
mov byte [ebp - 0x34], bl
mov byte [ebp - 0x32], ch
lea eax, [ebp - 0x37]
mov byte [ebp - 0x31], dh
mov byte [ebp - 0x30], 0
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c9340]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x7979
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x100056b7
mov byte [ebp - 0x3e], 0
jmp 0x10005bd1
mov byte [ebp - 0x38], 0x52
mov al, 0x1a
xor al, byte [ebp - 0x38]
mov cl, 0x37
xor cl, byte [ebp - 0x38]
mov dl, 0x3e
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x21
mov ah, 0x72
mov al, byte [ebp - 0x56]
mov ch, 0x13
mov byte [ebp - 0x36], cl
mov dh, 0x30
mov cl, byte [ebp - 0x38]
mov bh, 0x2b
xor al, cl
mov byte [ebp - 0x55], 0x21
mov byte [ebp - 0x2f], al
xor ah, cl
mov al, byte [ebp - 0x55]
xor dl, cl
xor bl, cl
mov byte [ebp - 0x2d], 0
xor ch, cl
mov byte [ebp - 0x33], ah
xor dh, cl
mov byte [ebp - 0x35], dl
xor bh, cl
mov byte [ebp - 0x34], bl
xor al, cl
mov byte [ebp - 0x32], ch
mov byte [ebp - 0x2e], al
lea eax, [ebp - 0x37]
mov byte [ebp - 0x31], dh
mov byte [ebp - 0x30], bh
mov byte [ebp - 0x2d], 0
jmp 0x10005bd4
mov cl, 0xf
mov dword [ebp - 0x3c], 0x6e7d4b0f
mov dword [ebp - 0x38], 0x2f616068
xor eax, eax
mov dword [ebp - 0x34], 0x6a796e4c
mov byte [ebp - 0x30], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10005762
mov cl, byte [ebp - 0x3c]
jmp 0x10005753
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10005bd4
movaps xmm0, xmmword [str._bLmdg_Jimemf]
xor ecx, ecx
movups xmmword [ebp - 0x3c], xmm0
nop dword [eax + eax]
mov al, byte [ebp - 0x3c]
xor byte [ebp + ecx - 0x3b], al
inc ecx
cmp ecx, 0xe
jb 0x10005780
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10005bd4
mov cl, 0x56
mov dword [ebp - 0x3c], 0x22371456
mov dword [ebp - 0x38], 0x30333a22
xor eax, eax
mov dword [ebp - 0x34], 0x323a333f
mov byte [ebp - 0x30], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10005762
mov cl, byte [ebp - 0x3c]
jmp 0x100057b6
mov byte [ebp - 0x38], 0x2d
mov al, 0x62
xor al, byte [ebp - 0x38]
mov cl, 0x5f
mov byte [ebp - 0x37], al
mov ah, 0x6c
mov al, byte [ebp - 0x38]
mov ch, cl
xor cl, al
mov byte [ebp - 0x55], 0x4c
xor ah, al
mov byte [ebp - 0x2e], 0
xor ch, al
mov byte [ebp - 0x33], ah
mov dl, 0x4e
mov byte [ebp - 0x36], cl
xor dl, al
mov byte [ebp - 0x32], ch
mov bl, 0xd
mov byte [ebp - 0x35], dl
xor bl, al
mov byte [ebp - 0x2e], 0
mov dh, 0x48
mov byte [ebp - 0x34], bl
xor dh, al
mov bh, 0x43
xor bh, al
mov byte [ebp - 0x31], dh
mov al, byte [ebp - 0x55]
xor al, byte [ebp - 0x38]
mov byte [ebp - 0x2f], al
lea eax, [ebp - 0x37]
mov byte [ebp - 0x30], bh
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c9490]
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 0x10005833
mov byte [ebp - 0x40], 0
jmp 0x10005bd1
mov cl, 0x1f
mov dword [ebp - 0x3c], 0x7d70581f
mov dword [ebp - 0x38], 0x3f717673
xor eax, eax
mov dword [ebp - 0x34], 0x717a6d5e
mov word [ebp - 0x30], 0x7e
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100055af
mov cl, byte [ebp - 0x3c]
jmp 0x10005868
movaps xmm0, xmmword [0x100c8dc0]
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 0x10005890
mov byte [ebp - 0x40], 0
jmp 0x10005bd1
movaps xmm0, xmmword [str.0UY_]
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 0x100058b3
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10005bd4
mov cl, 0x5f
mov dword [ebp - 0x3c], 0x2f3e115f
mov dword [ebp - 0x38], 0x7f2c3a36
xor eax, eax
mov dword [ebp - 0x34], 0x382d3018
mov word [ebp - 0x30], 0x3a
nop dword [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100055af
mov cl, byte [ebp - 0x3c]
jmp 0x100058f0
movaps xmm0, xmmword [0x100c94c0]
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 0x10005914
mov byte [ebp - 0x40], 0
jmp 0x10005bd1
movaps xmm0, xmmword [str._bIEH__fxEMBK_I]
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 0x10005937
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c8a50]
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 0x10005961
mov byte [ebp - 0x40], 0
jmp 0x10005bd1
mov al, 0x1c
mov byte [ebp - 0x38], 0x4f
xor al, byte [ebp - 0x38]
mov ah, 0x6f
mov byte [ebp - 0x37], al
mov cl, 0x21
mov al, byte [ebp - 0x38]
mov dl, 0x20
mov bl, 0x38
mov byte [ebp - 0x2f], 0
mov ch, 0x18
mov byte [ebp - 0x2f], 0
mov dh, 0x2e
xor cl, al
xor dl, al
mov byte [ebp - 0x36], cl
xor bl, al
mov byte [ebp - 0x35], dl
xor ah, al
mov byte [ebp - 0x34], bl
xor ch, al
mov byte [ebp - 0x33], ah
xor dh, al
mov byte [ebp - 0x32], ch
mov bh, 0x3d
mov byte [ebp - 0x31], dh
xor bh, al
lea eax, [ebp - 0x37]
mov byte [ebp - 0x30], bh
jmp 0x10005bd4
mov cl, 0x3a
mov dword [ebp - 0x3c], 0x5455683a
mov dword [ebp - 0x38], 0x1a51485b
xor eax, eax
mov dword [ebp - 0x34], 0x5e545b76
mov byte [ebp - 0x30], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10005762
mov cl, byte [ebp - 0x3c]
jmp 0x100059e4
mov cl, 0x28
mov bh, 0x5a
mov al, 0x1b
mov dl, 0x3e
mov bl, cl
mov ah, 0x3f
mov ch, 0x3b
mov dh, 0x37
jmp 0x1000566a
movaps xmm0, xmmword [str.e7_n_v]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10005a20
mov byte [ebp - 0x3f], 0
jmp 0x10005bd1
movaps xmm0, xmmword [0x100c8650]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x224b0f0a
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x10005a50
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c8950]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0xd642025
mov word [ebp - 0x40], 0xd
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x10005a83
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c8cf0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x7b125653
mov word [ebp - 0x40], 0x7b7b
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 0x10005ac0
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c8c50]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x160533
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10005af0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10005bd4
movaps xmm0, xmmword [0x100c9110]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x4014
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10005b20
mov byte [ebp - 0x3e], 0
jmp 0x10005bd1
mov dh, 0x4f
mov byte [ebp - 0x2d], 0
mov al, 0x1f
mov byte [ebp - 0x34], dh
mov ah, 0x20
mov byte [ebp - 0x2d], 0
mov cl, 0x3d
mov dl, 0x26
mov bl, 0x3c
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x21
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 0x10005bd4
mov cl, 0x34
mov dword [ebp - 0x3c], 0x5d477d34
mov dword [ebp - 0x38], 0x5a5b5b58
xor eax, eax
mov dword [ebp - 0x34], 0x51467514
mov word [ebp - 0x30], 0x555a
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x10005ba4
mov cl, byte [ebp - 0x3c]
jmp 0x10005b95
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10005bd4
movaps xmm0, xmmword [str..hKBO_EA_]
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 0x10005bc0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10005fd0
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.10005dd0
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x10005c0e
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.1006e1c5
mov esp, ebp
pop ebp
ret 4