Function at 0x10004597
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100545a8
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x1006a018]
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 0x1005980b
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.100052b0
mov dword [ebp - 4], 0
mov esi, dword [0x1006c2d8]
test esi, esi
jne 0x10004298
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004b50
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x1000495a
inc ecx
push ecx
jmp 0x10004952
cmp byte [0x1006c3a6], 0
je 0x100042d9
mov ecx, 0x10b8134
call fcn.100123d0
mov edi, eax
test edi, edi
je 0x100042d6
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x100042d6
push 4
add edi, 0xc88
push edi
call ebx
test eax, eax
jne 0x100042d6
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.0x100042ee.3
movzx eax, byte [eax + 0x10004a04]
jmp dword [eax*4 + 0x1000497c]
movaps xmm0, xmmword [0x10063a90]
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 0x10004306
mov byte [ebp - 0x40], 0
jmp 0x10004931
movaps xmm0, xmmword [0x10063ad0]
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 0x10004330
mov byte [ebp - 0x40], 0
jmp 0x10004931
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 0x10004374
mov cl, byte [ebp - 0x3c]
jmp 0x10004365
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10004934
movaps xmm0, xmmword [0x10063520]
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 0x10004391
mov byte [ebp - 0x40], 0
jmp 0x10004931
mov cl, 0x12
mov al, 0x30
mov dl, 0xf
mov bl, 0x1c
mov ah, 0x19
mov ch, cl
mov dh, 0x13
mov bh, 0x7d
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 0x10004934
mov cl, 0x57
mov dword [ebp - 0x3c], 0x3b321357
mov dword [ebp - 0x38], 0x14772438
xor eax, eax
mov dword [ebp - 0x34], 0x3b232436
mov word [ebp - 0x30], 0x32
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004374
mov cl, byte [ebp - 0x3c]
jmp 0x10004410
mov bh, 0x72
mov al, 0x24
mov cl, 0x5f
mov dl, 0x14
xor bl, bl
mov ah, 0x1d
mov ch, 1
mov dh, 6
jmp 0x100043b7
movaps xmm0, xmmword [0x10062de0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x606
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 0x10004450
mov byte [ebp - 0x3e], 0
jmp 0x10004931
mov byte [ebp - 0x38], 0x5e
mov al, 0x16
xor al, byte [ebp - 0x38]
mov cl, 0x3b
xor cl, byte [ebp - 0x38]
mov dl, 0x32
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x2d
mov ah, 0x7e
mov al, byte [ebp - 0x56]
mov ch, 0x1f
mov byte [ebp - 0x36], cl
mov dh, 0x3c
mov cl, byte [ebp - 0x38]
mov bh, 0x27
xor al, cl
mov byte [ebp - 0x55], 0x2d
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 0x100043d6
mov cl, 0x63
mov dword [ebp - 0x3c], 0x2112763
mov dword [ebp - 0x38], 0x430d0c04
xor eax, eax
mov dword [ebp - 0x34], 0x6150220
mov byte [ebp - 0x30], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x100044ef
mov cl, byte [ebp - 0x3c]
jmp 0x100044e0
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10004934
movaps xmm0, xmmword [0x10062b30]
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 0x10004508
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004934
mov cl, 0x2d
mov dword [ebp - 0x3c], 0x594c6f2d
mov dword [ebp - 0x38], 0x4b484159
xor eax, eax
mov dword [ebp - 0x34], 0x49414844
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x100044ef
mov cl, byte [ebp - 0x3c]
jmp 0x10004540
mov byte [ebp - 0x38], 0x32
mov al, 0x7d
xor al, byte [ebp - 0x38]
mov cl, 0x40
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0x51
mov bl, 0x12
mov byte [ebp - 0x55], 0x53
mov ah, 0x73
mov byte [ebp - 0x2e], 0
mov dh, 0x57
mov byte [ebp - 0x2e], 0
mov bh, 0x5c
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 0x100043d3
movaps xmm0, xmmword [0x10063950]
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 0x100045a8
mov byte [ebp - 0x40], 0
jmp 0x10004931
mov cl, 0x52
mov dword [ebp - 0x3c], 0x303d1552
mov dword [ebp - 0x38], 0x723c3b3e
xor eax, eax
mov dword [ebp - 0x34], 0x3c372013
mov word [ebp - 0x30], 0x33
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004374
mov cl, byte [ebp - 0x3c]
jmp 0x100045e0
movaps xmm0, xmmword [0x100630e0]
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 0x10004604
mov byte [ebp - 0x40], 0
jmp 0x10004931
movaps xmm0, xmmword [0x10062cc0]
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 0x10004627
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004934
mov cl, 0x5e
mov dword [ebp - 0x3c], 0x2e3f105e
mov dword [ebp - 0x38], 0x7e2d3b37
xor eax, eax
mov dword [ebp - 0x34], 0x392c3119
mov word [ebp - 0x30], 0x3b
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10004374
mov cl, byte [ebp - 0x3c]
jmp 0x10004660
movaps xmm0, xmmword [0x10063980]
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 0x10004684
mov byte [ebp - 0x40], 0
jmp 0x10004931
movaps xmm0, xmmword [str.F_b__5f]
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 0x100046a7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004934
movaps xmm0, xmmword [0x10063670]
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 0x100046d1
mov byte [ebp - 0x40], 0
jmp 0x10004931
mov byte [ebp - 0x38], 0x67
mov al, 0x34
xor al, byte [ebp - 0x38]
mov cl, 9
mov byte [ebp - 0x37], al
mov dl, 8
mov al, byte [ebp - 0x38]
mov bl, 0x10
mov ah, 0x47
mov byte [ebp - 0x2f], 0
mov ch, 0x30
mov byte [ebp - 0x2f], 0
mov dh, 6
mov bh, 0x15
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 0x100043d3
mov cl, 0x3b
mov dword [ebp - 0x3c], 0x5554693b
mov dword [ebp - 0x38], 0x1b50495a
xor eax, eax
mov dword [ebp - 0x34], 0x5f555a77
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x100044ef
mov cl, byte [ebp - 0x3c]
jmp 0x10004740
mov cl, 0xf
mov al, 0x3c
mov dl, 0x19
mov bl, cl
mov ah, 0x18
mov ch, 0x1c
mov dh, 0x10
jmp 0x100043b5
movaps xmm0, xmmword [0x10063580]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x50
nop dword [eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10004780
mov byte [ebp - 0x3f], 0
jmp 0x10004931
movaps xmm0, xmmword [0x10063260]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x11783c39
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x100047b0
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10004934
movaps xmm0, xmmword [0x100633e0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x56c282d
mov word [ebp - 0x40], 5
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x100047e3
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10004934
movaps xmm0, xmmword [0x10063470]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x36a2e2b
mov word [ebp - 0x40], 0x303
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 0x10004820
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10004934
movaps xmm0, xmmword [0x10063a40]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x213204
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10004850
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10004934
movaps xmm0, xmmword [0x10063380]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x2b7f
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10004880
mov byte [ebp - 0x3e], 0
jmp 0x10004931
mov dh, 0x52
mov byte [ebp - 0x2d], 0
mov al, 2
mov byte [ebp - 0x34], dh
mov ah, 0x3d
mov byte [ebp - 0x2d], 0
mov cl, 0x20
mov dl, 0x3b
mov bl, 0x21
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x3c
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 0x10004934
mov cl, 0x62
mov dword [ebp - 0x3c], 0xb112b62
mov dword [ebp - 0x38], 0xc0d0d0e
xor eax, eax
mov dword [ebp - 0x34], 0x7102342
mov word [ebp - 0x30], 0x30c
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x10004904
mov cl, byte [ebp - 0x3c]
jmp 0x100048f5
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10004934
movaps xmm0, xmmword [0x10062cb0]
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 0x10004920
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10004d30
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.10004b50
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x1000495a
inc eax
push eax
push dword [ebp - 0x2c]
call fcn.10005180
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.10052ee0
mov esp, ebp
pop ebp
ret 4