Function at 0x10004090
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10090bc8
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 0x100a4ed2
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.10004d00
mov dword [ebp - 4], 0
mov esi, dword [0x100bfa48]
test esi, esi
jne 0x10003c68
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.100045f0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x1000432d
inc ecx
push ecx
jmp 0x10004322
cmp byte [0x100bfabc], 0
je 0x10003ca9
mov ecx, 0x10b8134
call fcn.10012080
mov edi, eax
test edi, edi
je 0x10003ca6
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push edi
call ebx
test eax, eax
jne 0x10003ca6
push 4
add edi, 0xc88
push edi
call ebx
test eax, eax
jne 0x10003ca6
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.0x10003cbe.3
movzx eax, byte [eax + 0x100043d8]
jmp dword [eax*4 + 0x10004350]
movaps xmm0, xmmword [0x100afdf0]
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 0x10003cd6
mov byte [ebp - 0x40], 0
jmp 0x10004301
movaps xmm0, xmmword [0x100afce0]
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 0x10003d00
mov byte [ebp - 0x40], 0
jmp 0x10004301
mov cl, 0x16
mov dword [ebp - 0x3c], 0x64775d16
mov dword [ebp - 0x38], 0x53366563
xor eax, eax
mov dword [ebp - 0x34], 0x78777a65
mov word [ebp - 0x30], 0x62
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10003d44
mov cl, byte [ebp - 0x3c]
jmp 0x10003d35
mov byte [ebp - 0x2f], 0
lea eax, [ebp - 0x3b]
jmp 0x10004304
movaps xmm0, xmmword [0x100afb00]
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 0x10003d61
mov byte [ebp - 0x40], 0
jmp 0x10004301
mov cl, 0x74
mov bh, 0x1b
mov al, 0x56
mov dl, 0x69
mov bl, 0x7a
mov ah, 0x7f
mov ch, cl
mov dh, 0x75
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 0x10004304
mov cl, 6
mov dword [ebp - 0x3c], 0x6a634206
mov dword [ebp - 0x38], 0x45267569
xor eax, eax
mov dword [ebp - 0x34], 0x6a727567
mov word [ebp - 0x30], 0x63
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10003d44
mov cl, byte [ebp - 0x3c]
jmp 0x10003de0
mov bh, 0x1c
mov al, 0x4a
mov cl, 0x31
mov dl, 0x7a
mov bl, 0x6e
mov ah, 0x73
mov ch, 0x6f
mov dh, 0x68
jmp 0x10003d87
movaps xmm0, xmmword [0x100af9b0]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x5151
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 0x10003e20
mov byte [ebp - 0x3e], 0
jmp 0x10004301
mov byte [ebp - 0x38], 0x5d
mov al, 0x15
xor al, byte [ebp - 0x38]
mov cl, 0x38
xor cl, byte [ebp - 0x38]
mov dl, 0x31
mov byte [ebp - 0x37], al
mov bl, dl
mov byte [ebp - 0x56], 0x2e
mov ah, 0x7d
mov al, byte [ebp - 0x56]
mov ch, 0x1c
mov byte [ebp - 0x36], cl
mov dh, 0x3f
mov cl, byte [ebp - 0x38]
mov bh, 0x24
xor al, cl
mov byte [ebp - 0x55], 0x2e
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 0x10003da6
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 0x10003ebf
mov cl, byte [ebp - 0x3c]
jmp 0x10003eb0
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x3b]
jmp 0x10004304
movaps xmm0, xmmword [0x100aef10]
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 0x10003ed8
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004304
mov cl, 4
mov dword [ebp - 0x3c], 0x70654604
mov dword [ebp - 0x38], 0x62616870
xor eax, eax
mov dword [ebp - 0x34], 0x6068616d
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003ebf
mov cl, byte [ebp - 0x3c]
jmp 0x10003f10
mov byte [ebp - 0x38], 0x69
mov al, 0x26
xor al, byte [ebp - 0x38]
mov cl, 0x1b
mov byte [ebp - 0x37], al
mov ch, cl
mov al, byte [ebp - 0x38]
mov dl, 0xa
mov bl, 0x49
mov byte [ebp - 0x55], 8
mov ah, 0x28
mov byte [ebp - 0x2e], 0
mov dh, 0xc
mov byte [ebp - 0x2e], 0
mov bh, 7
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 0x10003da3
movaps xmm0, xmmword [0x100af370]
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 0x10003f78
mov byte [ebp - 0x40], 0
jmp 0x10004301
mov cl, 0x59
mov dword [ebp - 0x3c], 0x3b361e59
mov dword [ebp - 0x38], 0x79373035
xor eax, eax
mov dword [ebp - 0x34], 0x373c2b18
mov word [ebp - 0x30], 0x38
nop dword [eax]
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xc
jae 0x10003d44
mov cl, byte [ebp - 0x3c]
jmp 0x10003fb0
movaps xmm0, xmmword [0x100af450]
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 0x10003fd4
mov byte [ebp - 0x40], 0
jmp 0x10004301
movaps xmm0, xmmword [str._aLbkknihSbjwkb]
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 0x10003ff7
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004304
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 0x10003d44
mov cl, byte [ebp - 0x3c]
jmp 0x10004030
movaps xmm0, xmmword [0x100af360]
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 0x10004054
mov byte [ebp - 0x40], 0
jmp 0x10004301
movaps xmm0, xmmword [str.D_n___7d]
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 0x10004077
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x3b]
jmp 0x10004304
movaps xmm0, xmmword [0x100af300]
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 0x100040a1
mov byte [ebp - 0x40], 0
jmp 0x10004301
mov byte [ebp - 0x38], 0x62
mov al, 0x31
xor al, byte [ebp - 0x38]
mov cl, 0xc
mov byte [ebp - 0x37], al
mov dl, 0xd
mov al, byte [ebp - 0x38]
mov bl, 0x15
mov ah, 0x42
mov byte [ebp - 0x2f], 0
mov ch, 0x35
mov byte [ebp - 0x2f], 0
mov dh, 3
mov bh, 0x10
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 0x10003da3
mov cl, 0x73
mov dword [ebp - 0x3c], 0x1d1c2173
mov dword [ebp - 0x38], 0x53180112
xor eax, eax
mov dword [ebp - 0x34], 0x171d123f
mov byte [ebp - 0x30], 0
nop
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x10003ebf
mov cl, byte [ebp - 0x3c]
jmp 0x10004110
mov cl, 0x2c
mov bh, 0x5e
mov al, 0x1f
mov dl, 0x3a
mov bl, cl
mov ah, 0x3b
mov ch, 0x3f
mov dh, 0x33
jmp 0x10003d87
movaps xmm0, xmmword [0x100afd60]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x6d
nop dword [eax + eax]
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x10
jb 0x10004150
mov byte [ebp - 0x3f], 0
jmp 0x10004301
movaps xmm0, xmmword [0x100af8b0]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x6f064247
mov byte [ebp - 0x40], 0
nop
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x13
jb 0x10004180
mov byte [ebp - 0x40], 0
lea eax, [ebp - 0x53]
jmp 0x10004304
movaps xmm0, xmmword [0x100af100]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x3d541015
mov word [ebp - 0x40], 0x3d
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x14
jb 0x100041b3
mov byte [ebp - 0x3f], 0
lea eax, [ebp - 0x53]
jmp 0x10004304
movaps xmm0, xmmword [0x100af950]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x640d494c
mov word [ebp - 0x40], 0x6464
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 0x100041f0
mov byte [ebp - 0x3e], 0
lea eax, [ebp - 0x53]
jmp 0x10004304
movaps xmm0, xmmword [str.aLQGFQ]
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0x514274
nop dword [eax]
mov al, byte [ebp - 0x54]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0x12
jb 0x10004220
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x53]
jmp 0x10004304
movaps xmm0, xmmword [0x100af550]
xor ecx, ecx
movups xmmword [ebp - 0x50], xmm0
mov word [ebp - 0x40], 0x2d79
mov byte [ebp - 0x3e], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x11
jb 0x10004250
mov byte [ebp - 0x3e], 0
jmp 0x10004301
mov dh, 0x70
mov byte [ebp - 0x2d], 0
mov al, 0x20
mov byte [ebp - 0x34], dh
mov ah, 0x1f
mov byte [ebp - 0x2d], 0
mov cl, 2
mov dl, 0x19
mov bl, 3
xor al, dh
xor ah, dh
mov byte [ebp - 0x33], al
mov ch, 0x1e
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 0x10004304
mov cl, 0x71
mov dword [ebp - 0x3c], 0x18023871
mov dword [ebp - 0x38], 0x1f1e1e1d
xor eax, eax
mov dword [ebp - 0x34], 0x14033051
mov word [ebp - 0x30], 0x101f
mov byte [ebp - 0x2e], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xd
jae 0x100042d4
mov cl, byte [ebp - 0x3c]
jmp 0x100042c5
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x3b]
jmp 0x10004304
movaps xmm0, xmmword [0x100aee60]
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 0x100042f0
mov byte [ebp - 0x41], 0
lea eax, [ebp - 0x4f]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10004750
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.100045f0
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x1000432d
inc eax
push eax
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
call fcn.10004bb0
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.10059ed0
mov esp, ebp
pop ebp
ret 4