Function at 0x100054e5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006b4d8
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x10084014]
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 0x10071b3f
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.100027b0
mov dword [ebp - 4], 0
mov esi, dword [0x10086700]
test esi, esi
jne 0x10005348
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10005c40
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x10005a0a
inc ecx
push ecx
jmp 0x10005a02
cmp byte [0x1008678e], 0
je 0x10005387
mov ecx, 0xd78c9c
call fcn.10018d90
mov edi, eax
test edi, edi
je 0x10005384
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10005384
push 4
add edi, 0xb7c
push edi
call ebx
test eax, eax
jne 0x10005384
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.0x1000539c.3
movzx eax, byte [eax + 0x10005ab4]
jmp dword [eax*4 + 0x10005a2c]
movaps xmm0, xmmword [0x1007a550]
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 0x100053b4
mov byte [ebp - 0x40], 0
jmp 0x100059e1
movaps xmm0, xmmword [0x1007aab0]
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 0x100053e0
mov byte [ebp - 0x40], 0
jmp 0x100059e1
mov cl, 0x3f
mov dword [ebp - 0x3c], 0x4d5e743f
mov dword [ebp - 0x38], 0x7a1f4c4a
xor eax, eax
mov dword [ebp - 0x34], 0x515e534c
mov word [ebp - 0x30], 0x4b
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005424
mov cl, byte [ebp - 0x3c]
jmp 0x10005415
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x100059e4
movaps xmm0, xmmword [0x1007acf0]
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 0x10005441
mov byte [ebp - 0x40], 0
jmp 0x100059e1
mov cl, 0x40
mov bh, 0x2f
mov al, 0x62
mov dl, 0x5d
mov bl, 0x4e
mov ah, 0x4b
mov ch, cl
mov dh, 0x41
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 0x100059e4
mov cl, 0x1d
mov dword [ebp - 0x3c], 0x7178591d
mov dword [ebp - 0x38], 0x5e3d6e72
xor eax, eax
mov dword [ebp - 0x34], 0x71696e7c
mov word [ebp - 0x30], 0x78
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005424
mov cl, byte [ebp - 0x3c]
jmp 0x100054c0
mov bh, 0x45
mov al, 0x13
mov cl, 0x68
mov dl, 0x23
mov bl, 0x37
mov ah, 0x2a
mov ch, 0x36
mov dh, 0x31
jmp 0x10005467
movaps xmm0, xmmword [0x1007b3b0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x7272
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 0x10005500
mov byte [ebp - 0x3e], 0
jmp 0x100059e1
mov byte [ebp - 0x38], 0x36
mov al, 0x7e
xor al, byte [ebp - 0x38]
mov cl, 0x53
xor cl, byte [ebp - 0x38]
mov dl, 0x5a
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x45
mov ah, 0x16
mov al, byte [ebp - 0x56]
mov ch, 0x77
mov byte [ebp - 0x36], cl
mov dh, 0x54
mov cl, byte [ebp - 0x38]
mov bh, 0x4f
xor al, cl
mov byte [ebp - 0x55], 0x45
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 0x10005486
mov cl, 0x67
mov dword [ebp - 0x3c], 0x6152367
mov dword [ebp - 0x38], 0x47090800
xor eax, eax
mov dword [ebp - 0x34], 0x2110624
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000559f
mov cl, byte [ebp - 0x3c]
jmp 0x10005590
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x100059e4
movaps xmm0, xmmword [0x10079f60]
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 0x100055b8
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x100059e4
mov cl, 0x65
mov dword [ebp - 0x3c], 0x11042765
mov dword [ebp - 0x38], 0x3000911
xor eax, eax
mov dword [ebp - 0x34], 0x109000c
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000559f
mov cl, byte [ebp - 0x3c]
jmp 0x100055f0
mov byte [ebp - 0x38], 0x75
mov al, 0x3a
xor al, byte [ebp - 0x38]
mov cl, 7
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0x16
mov bl, 0x55
mov byte [ebp - 0x55], 0x14
mov ah, 0x34
mov byte [ebp - 0x2e], 0
mov dh, 0x10
mov byte [ebp - 0x2e], 0
mov bh, 0x1b
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 0x10005483
movaps xmm0, xmmword [0x1007b190]
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 0x10005658
mov byte [ebp - 0x40], 0
jmp 0x100059e1
mov cl, 0x2c
mov dword [ebp - 0x3c], 0x4e436b2c
mov dword [ebp - 0x38], 0xc424540
xor eax, eax
mov dword [ebp - 0x34], 0x42495e6d
mov word [ebp - 0x30], 0x4d
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005424
mov cl, byte [ebp - 0x3c]
jmp 0x10005690
movaps xmm0, xmmword [0x1007b3e0]
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 0x100056b4
mov byte [ebp - 0x40], 0
jmp 0x100059e1
movaps xmm0, xmmword [0x10079f40]
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 0x100056d7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x100059e4
mov cl, 0x66
mov dword [ebp - 0x3c], 0x16072866
mov dword [ebp - 0x38], 0x4615030f
xor eax, eax
mov dword [ebp - 0x34], 0x1140921
mov word [ebp - 0x30], 3
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10005424
mov cl, byte [ebp - 0x3c]
jmp 0x10005710
movaps xmm0, xmmword [0x1007a8f0]
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 0x10005734
mov byte [ebp - 0x40], 0
jmp 0x100059e1
movaps xmm0, xmmword [0x1007a1b0]
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 0x10005757
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x100059e4
movaps xmm0, xmmword [0x1007b490]
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 0x10005781
mov byte [ebp - 0x40], 0
jmp 0x100059e1
mov byte [ebp - 0x38], 0x26
mov al, 0x75
xor al, byte [ebp - 0x38]
mov cl, 0x48
mov byte [ebp - 0x37], al
mov dl, 0x49
mov al, byte [ebp - 0x38]
mov bl, 0x51
mov ah, 6
mov byte [ebp - 0x2f], 0
mov ch, 0x71
mov byte [ebp - 0x2f], 0
mov dh, 0x47
mov bh, 0x54
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 0x10005483
mov cl, 0x3c
mov dword [ebp - 0x3c], 0x52536e3c
mov dword [ebp - 0x38], 0x1c574e5d
xor eax, eax
mov dword [ebp - 0x34], 0x58525d70
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000559f
mov cl, byte [ebp - 0x3c]
jmp 0x100057f0
mov cl, 0x52
mov bh, 0x20
mov al, 0x61
mov dl, 0x44
mov bl, cl
mov ah, 0x45
mov ch, 0x41
mov dh, 0x4d
jmp 0x10005467
movaps xmm0, xmmword [0x1007b2e0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x60
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10005830
mov byte [ebp - 0x3f], 0
jmp 0x100059e1
movaps xmm0, xmmword [0x1007a840]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x127b3f3a
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x10005860
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x100059e4
movaps xmm0, xmmword [0x1007a960]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0xf662227
mov word [ebp - 0x40], 0xf
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x10005893
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x100059e4
movaps xmm0, xmmword [0x1007a450]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x274e0a0f
mov word [ebp - 0x40], 0x2727
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 0x100058d0
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x100059e4
movaps xmm0, xmmword [0x1007b430]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x2e3d0b
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10005900
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x100059e4
movaps xmm0, xmmword [0x1007ae40]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x4f1b
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10005930
mov byte [ebp - 0x3e], 0
jmp 0x100059e1
mov dh, 0x19
mov byte [ebp - 0x2d], 0
mov al, 0x49
mov byte [ebp - 0x34], dh
mov ah, 0x76
mov byte [ebp - 0x2d], 0
mov cl, 0x6b
mov dl, 0x70
mov bl, 0x6a
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x77
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 0x100059e4
mov cl, 0x2c
mov dword [ebp - 0x3c], 0x455f652c
mov dword [ebp - 0x38], 0x42434340
xor eax, eax
mov dword [ebp - 0x34], 0x495e6d0c
mov word [ebp - 0x30], 0x4d42
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x100059b4
mov cl, byte [ebp - 0x3c]
jmp 0x100059a5
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x100059e4
movaps xmm0, xmmword [0x10079f00]
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 0x100059d0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10005e10
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10005c40
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x10005a0a
inc eax
push eax
push dword [ebp - 0x2c]
call fcn.100026b0
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.10067dd5
mov esp, ebp
pop ebp
ret 4