Function at 0x2010bc00
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x2010bc59
test edx, edx
je 0x2010bca9
test r8d, r8d
je 0x2010bce9
test r9d, r9d
je 0x2010bd69
movzx eax, byte [0x2044dc31]
cmp al, 0x89
je 0x2010bf19
mov cl, 0xd5
nop word cs:[rax + rax]
mov al, 0xa7
lock cmpxchg byte [0x2044dc31], cl
je 0x2010bee9
cmp al, 0x89
jne 0x2010bc40
jmp 0x2010bf19
test edx, edx
je 0x2010bd29
test r8d, r8d
je 0x2010bd99
test r9d, r9d
je 0x2010be19
movzx eax, byte [0x2044dbb9]
cmp al, 0x36
je 0x2010bfe9
mov cl, 0xf4
nop word cs:[rax + rax]
mov al, 0x3e
lock cmpxchg byte [0x2044dbb9], cl
je 0x2010bfb9
cmp al, 0x36
jne 0x2010bc90
jmp 0x2010bfe9
test r8d, r8d
je 0x2010bdd9
test r9d, r9d
je 0x2010be49
movzx eax, byte [0x2044dd5d]
cmp al, 0x23
je 0x2010c029
mov cl, 0x52
nop dword [rax]
mov al, 0xbb
lock cmpxchg byte [0x2044dd5d], cl
je 0x2010bff5
cmp al, 0x23
jne 0x2010bcd0
jmp 0x2010c029
test r9d, r9d
je 0x2010be79
movzx eax, byte [0x2044dc10]
cmp al, 0xb4
je 0x2010c069
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0x5d
lock cmpxchg byte [0x2044dc10], cl
je 0x2010c035
cmp al, 0xb4
jne 0x2010bd10
jmp 0x2010c069
test r8d, r8d
je 0x2010bea9
test r9d, r9d
je 0x2010bf25
movzx eax, byte [0x2044dcf6]
cmp al, 0xd8
je 0x2010c109
mov cl, 0x8b
nop dword [rax]
mov al, 5
lock cmpxchg byte [0x2044dcf6], cl
je 0x2010c0df
cmp al, 0xd8
jne 0x2010bd50
jmp 0x2010c109
movzx eax, byte [0x2044db06]
cmp al, 0xab
je 0x2010c0a9
mov cl, 0xcb
nop word [rax + rax]
mov al, 0x6a
lock cmpxchg byte [0x2044db06], cl
je 0x2010c075
cmp al, 0xab
jne 0x2010bd80
jmp 0x2010c0a9
test r9d, r9d
je 0x2010bf59
movzx eax, byte [0x2044dba0]
cmp al, 0xa4
je 0x2010c149
mov cl, 0x2b
nop word cs:[rax + rax]
mov al, 0x85
lock cmpxchg byte [0x2044dba0], cl
je 0x2010c115
cmp al, 0xa4
jne 0x2010bdc0
jmp 0x2010c149
test r9d, r9d
je 0x2010bf89
movzx eax, byte [0x2044dc73]
cmp al, 0x51
je 0x2010c189
mov cl, 0x33
nop word cs:[rax + rax]
mov al, 0xc6
lock cmpxchg byte [0x2044dc73], cl
je 0x2010c155
cmp al, 0x51
jne 0x2010be00
jmp 0x2010c189
movzx eax, byte [0x2044db56]
cmp al, 0x33
je 0x2010c1c9
mov cl, 0x52
nop word [rax + rax]
mov al, 0x44
lock cmpxchg byte [0x2044db56], cl
je 0x2010c195
cmp al, 0x33
jne 0x2010be30
jmp 0x2010c1c9
movzx eax, byte [0x2044dacb]
cmp al, 0xf9
je 0x2010c209
mov cl, 0xf6
nop word [rax + rax]
mov al, 0xdb
lock cmpxchg byte [0x2044dacb], cl
je 0x2010c1d5
cmp al, 0xf9
jne 0x2010be60
jmp 0x2010c209
movzx eax, byte [0x2044da85]
cmp al, 0xcb
je 0x2010c249
mov cl, 0x5b
nop word [rax + rax]
mov al, 0x2d
lock cmpxchg byte [0x2044da85], cl
je 0x2010c215
cmp al, 0xcb
jne 0x2010be90
jmp 0x2010c249
test r9d, r9d
je 0x2010c0b5
movzx eax, byte [0x2044dbd6]
cmp al, 0xd8
je 0x2010c289
mov cl, 0xe8
nop word cs:[rax + rax]
mov al, 0xe4
lock cmpxchg byte [0x2044dbd6], cl
je 0x2010c255
cmp al, 0xd8
jne 0x2010bed0
jmp 0x2010c289
xor eax, eax
lea rcx, [0x2044dc20]
lea rdx, [0x20372ba0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x11
jl 0x2010bf00
mov al, 0x89
xchg byte [0x2044dc31], al
lea rax, [0x2044dc20]
jmp 0x2010c3e2
movzx eax, byte [0x2044dbc3]
cmp al, 0x2e
je 0x2010c2c9
mov cl, 0xaf
nop word cs:[rax + rax]
mov al, 0x2a
lock cmpxchg byte [0x2044dbc3], cl
je 0x2010c295
cmp al, 0x2e
jne 0x2010bf40
jmp 0x2010c2c9
movzx eax, byte [0x2044dbfa]
cmp al, 0xba
je 0x2010c369
mov esi, dword [rsp + 0x60]
mov cl, 0xc2
nop
mov al, 0x2a
lock cmpxchg byte [0x2044dbfa], cl
je 0x2010c2d5
cmp al, 0xba
jne 0x2010bf70
jmp 0x2010c369
movzx eax, byte [0x2044ddcd]
cmp al, 0x54
je 0x2010c3a9
mov cl, 0xde
nop word [rax + rax]
mov al, 0x6a
lock cmpxchg byte [0x2044ddcd], cl
je 0x2010c372
cmp al, 0x54
jne 0x2010bfa0
jmp 0x2010c3a9
xor eax, eax
lea rcx, [0x2044dbb0]
lea rdx, [0x20372b00]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x2010bfd0
mov al, 0x36
xchg byte [0x2044dbb9], al
lea rax, [0x2044dbb0]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044dd50]
lea rdx, [0x20372cd0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x2010c010
mov al, 0x23
xchg byte [0x2044dd5d], al
lea rax, [0x2044dd50]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044dc00]
lea rdx, [0x20372b90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x2010c050
mov al, 0xb4
xchg byte [0x2044dc10], al
lea rax, [0x2044dc00]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044daf0]
lea rdx, [0x20372a60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x2010c090
mov al, 0xab
xchg byte [0x2044db06], al
lea rax, [0x2044daf0]
jmp 0x2010c3e2
movzx eax, byte [0x2044dc65]
cmp al, 0x8f
je 0x2010c3db
mov cl, 0x3a
mov al, 0x5d
lock cmpxchg byte [0x2044dc65], cl
je 0x2010c3b2
cmp al, 0x8f
jne 0x2010c0c6
jmp 0x2010c3db
xor eax, eax
lea rcx, [0x2044dcd0]
lea rdx, [0x20372c50]
nop
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x2010c0f0
mov al, 0xd8
xchg byte [0x2044dcf6], al
lea rax, [0x2044dcd0]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044db90]
lea rdx, [0x20372af0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x2010c130
mov al, 0xa4
xchg byte [0x2044dba0], al
lea rax, [0x2044db90]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044dc70]
lea rdx, [0x20372bf0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x2010c170
mov al, 0x51
xchg byte [0x2044dc73], al
lea rax, [0x2044dc70]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044db40]
lea rdx, [0x20372ab0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x2010c1b0
mov al, 0x33
xchg byte [0x2044db56], al
lea rax, [0x2044db40]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044dac0]
lea rdx, [0x20372a30]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x2010c1f0
mov al, 0xf9
xchg byte [0x2044dacb], al
lea rax, [0x2044dac0]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044da70]
lea rdx, [0x203729e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x2010c230
mov al, 0xcb
xchg byte [0x2044da85], al
lea rax, [0x2044da70]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044dbd0]
lea rdx, [0x20372b20]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 6
jl 0x2010c270
mov al, 0xd8
xchg byte [0x2044dbd6], al
lea rax, [0x2044dbd0]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044dbc0]
lea rdx, [0x20372b10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x2010c2b0
mov al, 0x2e
xchg byte [0x2044dbc3], al
lea rax, [0x2044dbc0]
jmp 0x2010c3e2
cmp qword [0x204a1e98], 0
jne 0x2010c334
mov r9d, esi
xor r9d, 0xd0187b2c
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.2010af60
mov rdi, rax
mov qword [0x204a1e98], rax
xor esi, 0x7c2a31c1
lea rcx, [0x2010ae40]
mov edx, esi
call fcn.200ec9f0
xor eax, eax
lea rcx, [0x20372b70]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x2010c325
mov rax, qword [0x204a1e98]
xor ecx, ecx
lea rdx, [0x20372b80]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x2010c350
mov al, 0xba
xchg byte [0x2044dbfa], al
mov rax, qword [0x204a1e98]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044ddc0]
lea rdx, [0x20372d40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x2010c390
mov al, 0x54
xchg byte [0x2044ddcd], al
lea rax, [0x2044ddc0]
jmp 0x2010c3e2
xor eax, eax
lea rcx, [0x2044dc60]
lea rdx, [0x20372be0]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x2010c3c2
mov al, 0x8f
xchg byte [0x2044dc65], al
lea rax, [0x2044dc60]
add rsp, 0x28
pop rdi
pop rsi
ret