Function at 0x1000401c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10091438
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x100bb084]
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 0x100adec0
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.10004a40
mov dword [ebp - 4], 0
mov esi, dword [0x100bfe54]
test esi, esi
jne 0x100039a8
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004330
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x1000406d
inc ecx
push ecx
jmp 0x10004062
cmp byte [0x100bfea1], 0
je 0x100039e9
mov ecx, 0x10b8134
call fcn.10014e20
mov edi, eax
test edi, edi
je 0x100039e6
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x100039e6
push 4
add edi, 0xc88
push edi
call ebx
test eax, eax
jne 0x100039e6
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.0x100039fe.3
movzx eax, byte [eax + 0x10004118]
jmp dword [eax*4 + 0x10004090]
movaps xmm0, xmmword [0x100af2a0]
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 0x10003a16
mov byte [ebp - 0x40], 0
jmp 0x10004041
movaps xmm0, xmmword [0x100afdd0]
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 0x10003a40
mov byte [ebp - 0x40], 0
jmp 0x10004041
mov cl, 0x65
mov dword [ebp - 0x3c], 0x17042e65
mov dword [ebp - 0x38], 0x20451610
xor eax, eax
mov dword [ebp - 0x34], 0xb040916
mov word [ebp - 0x30], 0x11
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10003a84
mov cl, byte [ebp - 0x3c]
jmp 0x10003a75
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10004044
movaps xmm0, xmmword [0x100af850]
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 0x10003aa1
mov byte [ebp - 0x40], 0
jmp 0x10004041
mov cl, 0x5a
mov bh, 0x35
mov al, 0x78
mov dl, 0x47
mov bl, 0x54
mov ah, 0x51
mov ch, cl
mov dh, 0x5b
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 0x10004044
mov cl, 0x2a
mov dword [ebp - 0x3c], 0x464f6e2a
mov dword [ebp - 0x38], 0x690a5945
xor eax, eax
mov dword [ebp - 0x34], 0x465e594b
mov word [ebp - 0x30], 0x4f
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10003a84
mov cl, byte [ebp - 0x3c]
jmp 0x10003b20
mov bh, 0x1f
mov al, 0x49
mov cl, 0x32
mov dl, 0x79
mov bl, 0x6d
mov ah, 0x70
mov ch, 0x6c
mov dh, 0x6b
jmp 0x10003ac7
movaps xmm0, xmmword [0x100afe40]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x7575
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 0x10003b60
mov byte [ebp - 0x3e], 0
jmp 0x10004041
mov byte [ebp - 0x38], 0xa
mov al, 0x42
xor al, byte [ebp - 0x38]
mov cl, 0x6f
xor cl, byte [ebp - 0x38]
mov dl, 0x66
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x79
mov ah, 0x2a
mov al, byte [ebp - 0x56]
mov ch, 0x4b
mov byte [ebp - 0x36], cl
mov dh, 0x68
mov cl, byte [ebp - 0x38]
mov bh, 0x73
xor al, cl
mov byte [ebp - 0x55], 0x79
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 0x10003ae6
mov cl, 0x4c
mov dword [ebp - 0x3c], 0x2d3e084c
mov dword [ebp - 0x38], 0x6c22232b
xor eax, eax
mov dword [ebp - 0x34], 0x293a2d0f
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003bff
mov cl, byte [ebp - 0x3c]
jmp 0x10003bf0
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10004044
movaps xmm0, xmmword [0x100af020]
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 0x10003c18
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004044
mov cl, 0x3b
mov dword [ebp - 0x3c], 0x4f5a793b
mov dword [ebp - 0x38], 0x5d5e574f
xor eax, eax
mov dword [ebp - 0x34], 0x5f575e52
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003bff
mov cl, byte [ebp - 0x3c]
jmp 0x10003c50
mov byte [ebp - 0x38], 0x62
mov al, 0x2d
xor al, byte [ebp - 0x38]
mov cl, 0x10
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 1
mov bl, 0x42
mov byte [ebp - 0x55], 3
mov ah, 0x23
mov byte [ebp - 0x2e], 0
mov dh, 7
mov byte [ebp - 0x2e], 0
mov bh, 0xc
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 0x10003ae3
movaps xmm0, xmmword [0x100afba0]
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 0x10003cb8
mov byte [ebp - 0x40], 0
jmp 0x10004041
mov cl, 0x4c
mov dword [ebp - 0x3c], 0x2e230b4c
mov dword [ebp - 0x38], 0x6c222520
xor eax, eax
mov dword [ebp - 0x34], 0x22293e0d
mov word [ebp - 0x30], 0x2d
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10003a84
mov cl, byte [ebp - 0x3c]
jmp 0x10003cf0
movaps xmm0, xmmword [0x100af860]
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 0x10003d14
mov byte [ebp - 0x40], 0
jmp 0x10004041
movaps xmm0, xmmword [str._rFhaadcb_Yh_ah]
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 0x10003d37
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004044
mov cl, 0x7a
mov dword [ebp - 0x3c], 0xa1b347a
mov dword [ebp - 0x38], 0x5a091f13
xor eax, eax
mov dword [ebp - 0x34], 0x1d08153d
mov word [ebp - 0x30], 0x1f
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10003a84
mov cl, byte [ebp - 0x3c]
jmp 0x10003d70
movaps xmm0, xmmword [0x100afb30]
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 0x10003d94
mov byte [ebp - 0x40], 0
jmp 0x10004041
movaps xmm0, xmmword [0x100aefa0]
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 0x10003db7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004044
movaps xmm0, xmmword [0x100af930]
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 0x10003de1
mov byte [ebp - 0x40], 0
jmp 0x10004041
mov byte [ebp - 0x38], 0x49
mov al, 0x1a
xor al, byte [ebp - 0x38]
mov cl, 0x27
mov byte [ebp - 0x37], al
mov dl, 0x26
mov al, byte [ebp - 0x38]
mov bl, 0x3e
mov ah, 0x69
mov byte [ebp - 0x2f], 0
mov ch, 0x1e
mov byte [ebp - 0x2f], 0
mov dh, 0x28
mov bh, 0x3b
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 0x10003ae3
mov cl, 0x72
mov dword [ebp - 0x3c], 0x1c1d2072
mov dword [ebp - 0x38], 0x52190013
xor eax, eax
mov dword [ebp - 0x34], 0x161c133e
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003bff
mov cl, byte [ebp - 0x3c]
jmp 0x10003e50
mov cl, 0x56
mov bh, 0x24
mov al, 0x65
mov dl, 0x40
mov bl, cl
mov ah, 0x41
mov ch, 0x45
mov dh, 0x49
jmp 0x10003ac7
movaps xmm0, xmmword [0x100afb90]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x73
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10003e90
mov byte [ebp - 0x3f], 0
jmp 0x10004041
movaps xmm0, xmmword [0x100afc10]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x573e7a7f
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x10003ec0
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10004044
movaps xmm0, xmmword [0x100af4b0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x274e0a0f
mov word [ebp - 0x40], 0x27
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x10003ef3
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10004044
movaps xmm0, xmmword [0x100af9b0]
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 0x10003f30
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10004044
movaps xmm0, xmmword [0x100af310]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x584b7d
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10003f60
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10004044
movaps xmm0, xmmword [0x100af2e0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x1743
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10003f90
mov byte [ebp - 0x3e], 0
jmp 0x10004041
mov dh, 0x72
xor cl, cl
mov al, 0x22
mov byte [ebp - 0x2d], cl
mov ah, 0x1d
mov byte [ebp - 0x34], dh
mov dl, 0x1b
mov byte [ebp - 0x2d], 0
mov bl, 1
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x1c
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 0x10004044
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 0x10004013
mov cl, byte [ebp - 0x3c]
jmp 0x10004004
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10004044
movaps xmm0, xmmword [0x100aef40]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
nop dword [eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0xe
jb 0x10004030
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10004490
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004330
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x1000406d
inc eax
push eax
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
call fcn.100048f0
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.1005baa0
mov esp, ebp
pop ebp
ret 4