Function at 0x10004595
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10057ea8
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x10070014]
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 0x10066a18
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.10005550
mov dword [ebp - 4], 0
mov esi, dword [0x100723a8]
test esi, esi
jne 0x10004538
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004df0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x10004bfa
inc ecx
push ecx
jmp 0x10004bf2
cmp byte [0x1007241c], 0
je 0x10004579
mov ecx, 0x10b8134
call fcn.10011160
mov edi, eax
test edi, edi
je 0x10004576
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10004576
push 4
add edi, 0xc88
push edi
call ebx
test eax, eax
jne 0x10004576
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.0x1000458e.3
movzx eax, byte [eax + 0x10004ca4]
jmp dword [eax*4 + 0x10004c1c]
movaps xmm0, xmmword [str.1_be]
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 0x100045a6
mov byte [ebp - 0x40], 0
jmp 0x10004bd1
movaps xmm0, xmmword [0x10067c10]
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 0x100045d0
mov byte [ebp - 0x40], 0
jmp 0x10004bd1
mov cl, 0x7e
mov dword [ebp - 0x3c], 0xc1f357e
mov dword [ebp - 0x38], 0x3b5e0d0b
xor eax, eax
mov dword [ebp - 0x34], 0x101f120d
mov word [ebp - 0x30], 0xa
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004614
mov cl, byte [ebp - 0x3c]
jmp 0x10004605
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10004bd4
movaps xmm0, xmmword [str._vNgFdyjoNxgje]
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 0x10004631
mov byte [ebp - 0x40], 0
jmp 0x10004bd1
mov cl, 0x6e
mov bh, 1
mov al, 0x4c
mov dl, 0x73
mov bl, 0x60
mov ah, 0x65
mov ch, cl
mov dh, 0x6f
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 0x10004bd4
mov cl, 0xd
mov dword [ebp - 0x3c], 0x6168490d
mov dword [ebp - 0x38], 0x4e2d7e62
xor eax, eax
mov dword [ebp - 0x34], 0x61797e6c
mov word [ebp - 0x30], 0x68
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004614
mov cl, byte [ebp - 0x3c]
jmp 0x100046b0
mov bh, 0x38
mov al, 0x6e
mov cl, 0x15
mov dl, 0x5e
mov bl, 0x4a
mov ah, 0x57
mov ch, 0x4b
mov dh, 0x4c
jmp 0x10004657
movaps xmm0, xmmword [0x100681c0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x3434
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 0x100046f0
mov byte [ebp - 0x3e], 0
jmp 0x10004bd1
mov byte [ebp - 0x38], 0x5f
mov al, 0x17
xor al, byte [ebp - 0x38]
mov cl, 0x3a
xor cl, byte [ebp - 0x38]
mov dl, 0x33
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x2c
mov ah, 0x7f
mov al, byte [ebp - 0x56]
mov ch, 0x1e
mov byte [ebp - 0x36], cl
mov dh, 0x3d
mov cl, byte [ebp - 0x38]
mov bh, 0x26
xor al, cl
mov byte [ebp - 0x55], 0x2c
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 0x10004676
mov cl, 0x20
mov dword [ebp - 0x3c], 0x41526420
mov dword [ebp - 0x38], 0x4e4f47
xor eax, eax
mov dword [ebp - 0x34], 0x45564163
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000478f
mov cl, byte [ebp - 0x3c]
jmp 0x10004780
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10004bd4
movaps xmm0, xmmword [0x10067800]
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 0x100047a8
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004bd4
mov cl, 0x32
mov dword [ebp - 0x3c], 0x46537032
mov dword [ebp - 0x38], 0x54575e46
xor eax, eax
mov dword [ebp - 0x34], 0x565e575b
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000478f
mov cl, byte [ebp - 0x3c]
jmp 0x100047e0
mov byte [ebp - 0x38], 0x68
mov al, 0x27
xor al, byte [ebp - 0x38]
mov cl, 0x1a
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0xb
mov bl, 0x48
mov byte [ebp - 0x55], 9
mov ah, 0x29
mov byte [ebp - 0x2e], 0
mov dh, 0xd
mov byte [ebp - 0x2e], 0
mov bh, 6
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 0x10004673
movaps xmm0, xmmword [0x10068170]
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 0x10004848
mov byte [ebp - 0x40], 0
jmp 0x10004bd1
mov cl, 6
mov dword [ebp - 0x3c], 0x64694106
mov dword [ebp - 0x38], 0x26686f6a
xor eax, eax
mov dword [ebp - 0x34], 0x68637447
mov word [ebp - 0x30], 0x67
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004614
mov cl, byte [ebp - 0x3c]
jmp 0x10004880
movaps xmm0, xmmword [0x100682d0]
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 0x100048a4
mov byte [ebp - 0x40], 0
jmp 0x10004bd1
movaps xmm0, xmmword [0x10067760]
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 0x100048c7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004bd4
mov cl, 0x49
mov dword [ebp - 0x3c], 0x39280749
mov dword [ebp - 0x38], 0x693a2c20
xor eax, eax
mov dword [ebp - 0x34], 0x2e3b260e
mov word [ebp - 0x30], 0x2c
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004614
mov cl, byte [ebp - 0x3c]
jmp 0x10004900
movaps xmm0, xmmword [0x10067ce0]
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 0x10004924
mov byte [ebp - 0x40], 0
jmp 0x10004bd1
movaps xmm0, xmmword [0x10067a20]
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 0x10004947
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004bd4
movaps xmm0, xmmword [0x10067f00]
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 0x10004971
mov byte [ebp - 0x40], 0
jmp 0x10004bd1
mov byte [ebp - 0x38], 0x68
mov al, 0x3b
xor al, byte [ebp - 0x38]
mov cl, 6
mov byte [ebp - 0x37], al
mov dl, 7
mov al, byte [ebp - 0x38]
mov bl, 0x1f
mov ah, 0x48
mov byte [ebp - 0x2f], 0
mov ch, 0x3f
mov byte [ebp - 0x2f], 0
mov dh, 9
mov bh, 0x1a
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 0x10004673
mov cl, 0x35
mov dword [ebp - 0x3c], 0x5b5a6735
mov dword [ebp - 0x38], 0x155e4754
xor eax, eax
mov dword [ebp - 0x34], 0x515b5479
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x1000478f
mov cl, byte [ebp - 0x3c]
jmp 0x100049e0
mov cl, 0x11
mov bh, 0x63
mov al, 0x22
mov dl, 7
mov bl, cl
mov ah, 6
mov ch, 2
mov dh, 0xe
jmp 0x10004657
movaps xmm0, xmmword [0x10068350]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x5c
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10004a20
mov byte [ebp - 0x3f], 0
jmp 0x10004bd1
movaps xmm0, xmmword [0x10067f30]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x10793d38
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x10004a50
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10004bd4
movaps xmm0, xmmword [0x10068040]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0xe672326
mov word [ebp - 0x40], 0xe
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x10004a83
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10004bd4
movaps xmm0, xmmword [0x10067ec0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x1a733732
mov word [ebp - 0x40], 0x1a1a
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 0x10004ac0
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10004bd4
movaps xmm0, xmmword [0x100684c0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0xa192f
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10004af0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10004bd4
movaps xmm0, xmmword [0x100687d0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x6f3b
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10004b20
mov byte [ebp - 0x3e], 0
jmp 0x10004bd1
mov dh, 9
mov byte [ebp - 0x2d], 0
mov al, 0x59
mov byte [ebp - 0x34], dh
mov ah, 0x66
mov byte [ebp - 0x2d], 0
mov cl, 0x7b
mov dl, 0x60
mov bl, 0x7a
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x67
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 0x10004bd4
mov cl, 0x3e
mov dword [ebp - 0x3c], 0x574d773e
mov dword [ebp - 0x38], 0x50515152
xor eax, eax
mov dword [ebp - 0x34], 0x5b4c7f1e
mov word [ebp - 0x30], 0x5f50
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x10004ba4
mov cl, byte [ebp - 0x3c]
jmp 0x10004b95
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10004bd4
movaps xmm0, xmmword [str.eFOBMHLQ]
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 0x10004bc0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10004fd0
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004df0
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x10004bfa
inc eax
push eax
push dword [ebp - 0x2c]
call fcn.10005420
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.10054950
mov esp, ebp
pop ebp
ret 4