Function at 0x10004580
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10057c68
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x1006f014]
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 0x1005c9a7
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.100054b0
mov dword [ebp - 4], 0
mov esi, dword [0x100713a8]
test esi, esi
jne 0x10004498
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004d50
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x10004b5a
inc ecx
push ecx
jmp 0x10004b52
cmp byte [0x1007141c], 0
je 0x100044d9
mov ecx, 0x10b8134
call fcn.10010fa0
mov edi, eax
test edi, edi
je 0x100044d6
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x100044d6
push 4
add edi, 0xc88
push edi
call ebx
test eax, eax
jne 0x100044d6
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.0x100044ee.3
movzx eax, byte [eax + 0x10004c04]
jmp dword [eax*4 + 0x10004b7c]
movaps xmm0, xmmword [0x10067870]
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 0x10004506
mov byte [ebp - 0x40], 0
jmp 0x10004b31
movaps xmm0, xmmword [0x10067130]
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 0x10004530
mov byte [ebp - 0x40], 0
jmp 0x10004b31
mov cl, 0x7b
mov dword [ebp - 0x3c], 0x91a307b
mov dword [ebp - 0x38], 0x3e5b080e
xor eax, eax
mov dword [ebp - 0x34], 0x151a1708
mov word [ebp - 0x30], 0xf
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004574
mov cl, byte [ebp - 0x3c]
jmp 0x10004565
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10004b34
movaps xmm0, xmmword [0x10066de0]
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 0x10004591
mov byte [ebp - 0x40], 0
jmp 0x10004b31
mov cl, 0x6b
mov bh, 4
mov al, 0x49
mov dl, 0x76
mov bl, 0x65
mov ah, 0x60
mov ch, cl
mov dh, 0x6a
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 0x10004b34
mov cl, 0x10
mov dword [ebp - 0x3c], 0x7c755410
mov dword [ebp - 0x38], 0x5330637f
xor eax, eax
mov dword [ebp - 0x34], 0x7c646371
mov word [ebp - 0x30], 0x75
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004574
mov cl, byte [ebp - 0x3c]
jmp 0x10004610
mov bh, 0x5f
mov al, 9
mov cl, 0x72
mov dl, 0x39
mov bl, 0x2d
mov ah, 0x30
mov ch, 0x2c
mov dh, 0x2b
jmp 0x100045b7
movaps xmm0, xmmword [0x10067580]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x5757
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 0x10004650
mov byte [ebp - 0x3e], 0
jmp 0x10004b31
mov byte [ebp - 0x38], 0x2c
mov al, 0x64
xor al, byte [ebp - 0x38]
mov cl, 0x49
xor cl, byte [ebp - 0x38]
mov dl, 0x40
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x5f
mov ah, 0xc
mov al, byte [ebp - 0x56]
mov ch, 0x6d
mov byte [ebp - 0x36], cl
mov dh, 0x4e
mov cl, byte [ebp - 0x38]
mov bh, 0x55
xor al, cl
mov byte [ebp - 0x55], 0x5f
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 0x100045d6
mov cl, 0x3e
mov dword [ebp - 0x3c], 0x5f4c7a3e
mov dword [ebp - 0x38], 0x1e505159
xor eax, eax
mov dword [ebp - 0x34], 0x5b485f7d
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x100046ef
mov cl, byte [ebp - 0x3c]
jmp 0x100046e0
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10004b34
movaps xmm0, xmmword [0x100668c0]
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 0x10004708
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004b34
mov cl, 0x2a
mov dword [ebp - 0x3c], 0x5e4b682a
mov dword [ebp - 0x38], 0x4c4f465e
xor eax, eax
mov dword [ebp - 0x34], 0x4e464f43
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x100046ef
mov cl, byte [ebp - 0x3c]
jmp 0x10004740
mov byte [ebp - 0x38], 0x11
mov al, 0x5e
xor al, byte [ebp - 0x38]
mov cl, 0x63
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0x72
mov bl, 0x31
mov byte [ebp - 0x55], 0x70
mov ah, 0x50
mov byte [ebp - 0x2e], 0
mov dh, 0x74
mov byte [ebp - 0x2e], 0
mov bh, 0x7f
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 0x100045d3
movaps xmm0, xmmword [0x10066ea0]
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 0x100047a8
mov byte [ebp - 0x40], 0
jmp 0x10004b31
mov cl, 0x30
mov dword [ebp - 0x3c], 0x525f7730
mov dword [ebp - 0x38], 0x105e595c
xor eax, eax
mov dword [ebp - 0x34], 0x5e554271
mov word [ebp - 0x30], 0x51
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004574
mov cl, byte [ebp - 0x3c]
jmp 0x100047e0
movaps xmm0, xmmword [0x100678e0]
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 0x10004804
mov byte [ebp - 0x40], 0
jmp 0x10004b31
movaps xmm0, xmmword [0x100668e0]
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 0x10004827
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004b34
mov cl, 0x10
mov dword [ebp - 0x3c], 0x60715e10
mov dword [ebp - 0x38], 0x30637579
xor eax, eax
mov dword [ebp - 0x34], 0x77627f57
mov word [ebp - 0x30], 0x75
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004574
mov cl, byte [ebp - 0x3c]
jmp 0x10004860
movaps xmm0, xmmword [0x10067430]
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 0x10004884
mov byte [ebp - 0x40], 0
jmp 0x10004b31
movaps xmm0, xmmword [str._p_WZM]
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 0x100048a7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004b34
movaps xmm0, xmmword [0x10067730]
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 0x100048d1
mov byte [ebp - 0x40], 0
jmp 0x10004b31
mov byte [ebp - 0x38], 0x34
mov al, 0x67
xor al, byte [ebp - 0x38]
mov cl, 0x5a
mov byte [ebp - 0x37], al
mov dl, 0x5b
mov al, byte [ebp - 0x38]
mov bl, 0x43
mov ah, 0x14
mov byte [ebp - 0x2f], 0
mov ch, 0x63
mov byte [ebp - 0x2f], 0
mov dh, 0x55
mov bh, 0x46
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 0x100045d3
mov cl, 0x43
mov dword [ebp - 0x3c], 0x2d2c1143
mov dword [ebp - 0x38], 0x63283122
xor eax, eax
mov dword [ebp - 0x34], 0x272d220f
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x100046ef
mov cl, byte [ebp - 0x3c]
jmp 0x10004940
mov cl, 0x49
mov bh, 0x3b
mov al, 0x7a
mov dl, 0x5f
mov bl, cl
mov ah, 0x5e
mov ch, 0x5a
mov dh, 0x56
jmp 0x100045b7
movaps xmm0, xmmword [0x100670e0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x23
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10004980
mov byte [ebp - 0x3f], 0
jmp 0x10004b31
movaps xmm0, xmmword [0x10067520]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x670e4a4f
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x100049b0
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10004b34
movaps xmm0, xmmword [0x100674c0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x6b024643
mov word [ebp - 0x40], 0x6b
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x100049e3
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10004b34
movaps xmm0, xmmword [0x10066f60]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x1b723633
mov word [ebp - 0x40], 0x1b1b
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 0x10004a20
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10004b34
movaps xmm0, xmmword [0x10067660]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x342711
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10004a50
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10004b34
movaps xmm0, xmmword [0x10067370]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x5004
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10004a80
mov byte [ebp - 0x3e], 0
jmp 0x10004b31
mov dh, 0x27
mov byte [ebp - 0x2d], 0
mov al, 0x77
mov byte [ebp - 0x34], dh
mov ah, 0x48
mov byte [ebp - 0x2d], 0
mov cl, 0x55
mov dl, 0x4e
mov bl, 0x54
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x49
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 0x10004b34
mov cl, 0x42
mov dword [ebp - 0x3c], 0x2b310b42
mov dword [ebp - 0x38], 0x2c2d2d2e
xor eax, eax
mov dword [ebp - 0x34], 0x27300362
mov word [ebp - 0x30], 0x232c
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x10004b04
mov cl, byte [ebp - 0x3c]
jmp 0x10004af5
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10004b34
movaps xmm0, xmmword [0x100667d0]
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 0x10004b20
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10004f30
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004d50
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x10004b5a
inc eax
push eax
push dword [ebp - 0x2c]
call fcn.10005380
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.10054720
mov esp, ebp
pop ebp
ret 4