Function at 0x10003c23
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10053a68
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x10069018]
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 0x100587f5
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.100048e0
mov dword [ebp - 4], 0
mov esi, dword [0x1006aee8]
test esi, esi
jne 0x100038c8
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004180
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x10003f8a
inc ecx
push ecx
jmp 0x10003f82
cmp byte [0x1006afb6], 0
je 0x10003909
mov ecx, 0x10b8134
call fcn.100119c0
mov edi, eax
test edi, edi
je 0x10003906
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10003906
push 4
add edi, 0xc88
push edi
call ebx
test eax, eax
jne 0x10003906
mov ax, word [edi]
mov word [esi + 0x40], ax
mov edi, dword [ebp - 0x30]
movzx eax, word [esi + 0x40]
dec eax
cmp eax, 0x5d
ja case.0x1000391e.3
movzx eax, byte [eax + 0x10004034]
jmp dword [eax*4 + 0x10003fac]
movaps xmm0, xmmword [0x100625a0]
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 0x10003936
mov byte [ebp - 0x40], 0
jmp 0x10003f61
movaps xmm0, xmmword [0x10062560]
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 0x10003960
mov byte [ebp - 0x40], 0
jmp 0x10003f61
mov cl, 0x51
mov dword [ebp - 0x3c], 0x23301a51
mov dword [ebp - 0x38], 0x14712224
xor eax, eax
mov dword [ebp - 0x34], 0x3f303d22
mov word [ebp - 0x30], 0x25
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100039a4
mov cl, byte [ebp - 0x3c]
jmp 0x10003995
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10003f64
movaps xmm0, xmmword [0x10062270]
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 0x100039c1
mov byte [ebp - 0x40], 0
jmp 0x10003f61
mov cl, 0x34
mov bh, 0x5b
mov al, 0x16
mov bl, 0x3a
mov ah, 0x3f
mov ch, cl
mov dh, 0x35
mov dl, 0x29
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 0x10003f64
mov cl, 0x18
mov dword [ebp - 0x3c], 0x747d5c18
mov dword [ebp - 0x38], 0x5b386b77
xor eax, eax
mov dword [ebp - 0x34], 0x746c6b79
mov word [ebp - 0x30], 0x7d
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100039a4
mov cl, byte [ebp - 0x3c]
jmp 0x10003a40
mov bh, 0x4f
mov al, 0x19
mov cl, 0x62
mov bl, 0x3d
mov ah, 0x20
mov ch, 0x3c
mov dh, 0x3b
jmp 0x100039e5
movaps xmm0, xmmword [0x100626b0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x6a6a
mov byte [ebp - 0x3e], 0
nop word [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10003a80
mov byte [ebp - 0x3e], 0
jmp 0x10003f61
mov byte [ebp - 0x38], 0x22
mov al, 0x6a
xor al, byte [ebp - 0x38]
mov cl, 0x47
xor cl, byte [ebp - 0x38]
mov dl, 0x4e
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x51
mov ah, 2
mov al, byte [ebp - 0x56]
mov ch, 0x63
mov byte [ebp - 0x36], cl
mov dh, 0x40
mov cl, byte [ebp - 0x38]
mov bh, 0x5b
xor al, cl
mov byte [ebp - 0x55], 0x51
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 0x10003a06
mov cl, 0x23
mov dword [ebp - 0x3c], 0x42516723
mov dword [ebp - 0x38], 0x34d4c44
xor eax, eax
mov dword [ebp - 0x34], 0x46554260
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003b1f
mov cl, byte [ebp - 0x3c]
jmp 0x10003b10
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10003f64
movaps xmm0, xmmword [str._e:30_]
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 0x10003b38
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10003f64
mov cl, 0x6e
mov dword [ebp - 0x3c], 0x1a0f2c6e
mov dword [ebp - 0x38], 0x80b021a
xor eax, eax
mov dword [ebp - 0x34], 0xa020b07
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003b1f
mov cl, byte [ebp - 0x3c]
jmp 0x10003b70
mov byte [ebp - 0x38], 0x12
mov al, 0x5d
xor al, byte [ebp - 0x38]
mov cl, 0x60
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0x71
mov bl, 0x32
mov byte [ebp - 0x55], 0x73
mov ah, 0x53
mov byte [ebp - 0x2e], 0
mov dh, 0x77
mov byte [ebp - 0x2e], 0
mov bh, 0x7c
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 0x10003a03
movaps xmm0, xmmword [0x10061ed0]
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 0x10003bd8
mov byte [ebp - 0x40], 0
jmp 0x10003f61
mov cl, 0x28
mov dword [ebp - 0x3c], 0x4a476f28
mov dword [ebp - 0x38], 0x8464144
xor eax, eax
mov dword [ebp - 0x34], 0x464d5a69
mov word [ebp - 0x30], 0x49
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100039a4
mov cl, byte [ebp - 0x3c]
jmp 0x10003c10
movaps xmm0, xmmword [0x10061e10]
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 0x10003c34
mov byte [ebp - 0x40], 0
jmp 0x10003f61
movaps xmm0, xmmword [0x10061c30]
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 0x10003c57
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10003f64
mov cl, 0x52
mov dword [ebp - 0x3c], 0x22331c52
mov dword [ebp - 0x38], 0x7221373b
xor eax, eax
mov dword [ebp - 0x34], 0x35203d15
mov word [ebp - 0x30], 0x37
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x100039a4
mov cl, byte [ebp - 0x3c]
jmp 0x10003c90
movaps xmm0, xmmword [0x100623b0]
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 0x10003cb4
mov byte [ebp - 0x40], 0
jmp 0x10003f61
movaps xmm0, xmmword [0x10061c80]
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 0x10003cd7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10003f64
movaps xmm0, xmmword [0x10062410]
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 0x10003d01
mov byte [ebp - 0x40], 0
jmp 0x10003f61
mov byte [ebp - 0x38], 0x63
mov al, 0x30
xor al, byte [ebp - 0x38]
mov cl, 0xd
mov byte [ebp - 0x37], al
mov dl, 0xc
mov al, byte [ebp - 0x38]
mov bl, 0x14
mov ah, 0x43
mov byte [ebp - 0x2f], 0
mov ch, 0x34
mov byte [ebp - 0x2f], 0
mov dh, 2
mov bh, 0x11
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 0x10003a03
mov cl, 0x4b
mov dword [ebp - 0x3c], 0x2524194b
mov dword [ebp - 0x38], 0x6b20392a
xor eax, eax
mov dword [ebp - 0x34], 0x2f252a07
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003b1f
mov cl, byte [ebp - 0x3c]
jmp 0x10003d70
mov cl, 0x6e
mov bh, 0x1c
mov al, 0x5d
mov dl, 0x78
mov bl, cl
mov ah, 0x79
mov ch, 0x7d
mov dh, 0x71
jmp 0x100039e7
movaps xmm0, xmmword [0x100622d0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x21
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10003db0
mov byte [ebp - 0x3f], 0
jmp 0x10003f61
movaps xmm0, xmmword [0x10062840]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x4c256164
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x10003de0
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10003f64
movaps xmm0, xmmword [0x10061f30]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x2a430702
mov word [ebp - 0x40], 0x2a
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x10003e13
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10003f64
movaps xmm0, xmmword [0x100625b0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x69004441
mov word [ebp - 0x40], 0x6969
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 0x10003e50
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10003f64
movaps xmm0, xmmword [0x10062390]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x120137
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10003e80
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10003f64
movaps xmm0, xmmword [0x10062830]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x7226
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10003eb0
mov byte [ebp - 0x3e], 0
jmp 0x10003f61
mov dh, 0x12
mov byte [ebp - 0x2d], 0
mov al, 0x42
mov byte [ebp - 0x34], dh
mov ah, 0x7d
mov byte [ebp - 0x2d], 0
mov cl, 0x60
mov dl, 0x7b
mov bl, 0x61
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x7c
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 0x10003f64
mov cl, 0x24
mov dword [ebp - 0x3c], 0x4d576d24
mov dword [ebp - 0x38], 0x4a4b4b48
xor eax, eax
mov dword [ebp - 0x34], 0x41566504
mov word [ebp - 0x30], 0x454a
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x10003f34
mov cl, byte [ebp - 0x3c]
jmp 0x10003f25
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10003f64
movaps xmm0, xmmword [0x10061ab0]
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 0x10003f50
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10004360
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004180
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x10003f8a
inc eax
push eax
push dword [ebp - 0x2c]
call fcn.100047b0
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.100523a0
mov esp, ebp
pop ebp
ret 4