Function at 0x201c2790
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov qword [rsp + 0x50], r9
mov r13, r8
mov r14, rcx
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x58], rax
mov rbp, qword [rsp + 0x160]
mov rsi, qword [rsp + 0x158]
mov r15, qword [rsp + 0x150]
mov dword [rsp + 0x4c], edx
mov edi, edx
and edi, 0x3f
cmp edi, 0x16
setae al
mov qword [rsp + 0x68], rax
jb 0x201c2813
cmp edi, 0x20
jae 0x201c28b1
cmp edi, 0x1a
jbe 0x201c2929
cmp edi, 0x1b
jne 0x201c2abe
mov rcx, rsi
call fcn.204063e4
xor esi, esi
jmp 0x201c4b66
cmp edi, 0xb
setb bl
jae 0x201c2903
cmp edi, 5
jae 0x201c2959
test edi, edi
je 0x201c2c29
cmp edi, 2
jbe 0x201c2cb9
cmp edi, 4
jne 0x201c30b3
nop
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx + 0x38]
mov rax, qword [rax]
mov esi, 0xffffffff
test rax, rax
je 0x201c4b66
nop
mov rcx, qword [rcx + 0x18]
cmp rax, qword [rcx]
jbe 0x201c4b66
cmp r14d, 0xffffffff
je 0x201c3de0
nop
cmp byte [rax - 1], r14b
je 0x201c288c
nop
mov rax, qword [rsp + 0x50]
test byte [rax + 0x70], 2
jne 0x201c4b66
nop
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx + 0x50]
inc dword [rax]
mov rax, qword [rcx + 0x38]
dec qword [rax]
mov rax, qword [rcx + 0x38]
mov rax, qword [rax]
mov byte [rax], r14b
mov esi, r14d
jmp 0x201c4b66
cmp edi, 0x26
jae 0x201c29b0
cmp edi, 0x21
jbe case.default.0x201c28d4
add edi, 0xffffffde
lea rax, [0x204767a0]
movsxd rcx, dword [rax + rdi*4]
add rcx, rax
jmp rcx
nop
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rbx]
test rcx, rcx
je 0x201c39b4
nop
sub rcx, qword [rbx + 0x10]
mov edx, 0x1ed1aece
call fcn.201c2790
mov qword [rbx], 0
jmp 0x201c39cc
cmp edi, 0x10
jae 0x201c29f0
cmp edi, 0xb
jne 0x201c2b20
mov ecx, r15d
mov rdx, qword [rsp + 0x58]
call fcn.20423bf8
mov esi, eax
jmp 0x201c4b66
cmp edi, 0x17
jbe 0x201c2b4e
cmp edi, 0x18
je 0x201c2eed
cmp edi, 0x1a
jne 0x201c3010
mov rcx, rbp
mov rdx, r13
mov r8d, r14d
call fcn.20407574
mov esi, eax
jmp 0x201c4b66
cmp edi, 7
jbe 0x201c2b63
cmp edi, 8
je 0x201c2f27
cmp edi, 9
jne 0x201c304f
nop
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsi]
mov rax, qword [rax + 0x30]
mov rcx, rsi
call qword [case.0x200c66ec.0]
cmp eax, 0xffffffff
je 0x201c35a7
nop
mov rax, qword [rsi + 0x50]
dec dword [rax]
mov rax, qword [rsi + 0x38]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
movzx esi, byte [rcx]
jmp 0x201c4b66
jne 0x201c2bc6
nop
cmp qword [0x205ec4e0], 0
jne 0x201c38ae
nop
movzx eax, byte [0x2058cebd]
cmp al, 0xc9
je 0x201c37c8
mov cl, 0x9d
mov al, 0xac
lock cmpxchg byte [0x2058cebd], cl
je 0x201c3758
cmp al, 0xc9
jne 0x201c29d7
jmp 0x201c37c8
cmp edi, 0x12
jbe 0x201c2c0b
cmp edi, 0x13
je 0x201c2f65
cmp edi, 0x14
jne 0x201c3061
mov al, 1
cmp qword [rsi + 0x68], 0
je 0x201c473f
nop
cmp byte [rsi + 0x71], 0
je 0x201c473f
nop
mov rax, qword [rsi]
mov rax, qword [rax + 0x18]
mov rcx, rsi
mov edx, 0xffffffff
call qword [case.0x200c66ec.0]
cmp eax, 0xffffffff
je 0x201c3c7d
nop
mov rcx, qword [rsi + 0x68]
lea r9, [rsp + 0xc0]
lea rdx, [rsi + 0x74]
mov rax, qword [rcx]
mov rax, qword [rax + 0x40]
lea r8, [rsp + 0x78]
mov qword [rsp + 0x20], r8
lea r15, [rsp + 0xa0]
mov r8, r15
call qword [case.0x200c66ec.0]
cmp eax, 3
je 0x201c4442
cmp eax, 1
je 0x201c2a8c
test eax, eax
jne 0x201c2ab7
nop
mov byte [rsi + 0x71], 0
nop
mov r12, qword [rsp + 0x78]
sub r12, r15
je 0x201c4705
nop
mov r8, qword [rsi + 0x80]
mov rcx, r15
mov rdx, r12
call fcn.20078f10
cmp r12, rax
je 0x201c470c
xor eax, eax
jmp 0x201c4714
cmp edi, 0x1d
ja 0x201c2d5d
jne 0x201c31ba
nop
mov rax, qword [rsp + 0x58]
cmp qword [rax + 0x68], 0
je 0x201c38bc
test r13, r13
jle 0x201c3ad3
mov rax, qword [rsp + 0x58]
lea rdi, [rax + 0x40]
lea rbx, [rax + 0x58]
xor eax, eax
mov qword [rsp + 0x68], rax
mov rbp, r13
jmp 0x201c497f
cmp edi, 0x20
jne 0x201c2d92
mov rcx, r15
mov rdx, qword [rsp + 0x50]
call fcn.20423240
xor esi, esi
jmp 0x201c4b66
cmp edi, 0xd
ja 0x201c2de9
jne 0x201c331e
nop
cmp qword [0x205ec4f0], 0
je 0x201c3926
mov rcx, rsi
call qword [0x205ec4f0]
mov esi, eax
jmp 0x201c4b66
cmp edi, 0x16
jne 0x201c2e14
nop
mov esi, dword [0x2058d7bc]
jmp 0x201c4b66
cmp edi, 5
je 0x201c2f91
cmp edi, 7
jne 0x201c32f5
nop
cmp dword [rsp + 0x58], 0xffffffff
je 0x201c4b25
nop
mov r15d, dword [0x2058d7c0]
mov rax, qword [r14 + 0x40]
cmp qword [rax], 0
je 0x201c355e
nop
mov rax, qword [r14 + 0x58]
mov ecx, dword [rax]
test ecx, ecx
jle 0x201c355e
dec ecx
mov dword [rax], ecx
mov rax, qword [r14 + 0x40]
mov rcx, qword [rax]
lea rdx, [rcx + 1]
mov qword [rax], rdx
mov rax, qword [rsp + 0x58]
mov byte [rcx], al
mov esi, eax
jmp 0x201c4b66
cmp edi, 0x29
jbe 0x201c2ec0
cmp edi, 0x2a
jne 0x201c333b
nop
mov r9d, dword [0x2058d7c0]
add r13, 0x10
movzx eax, r14b
xor r9, 0x441d03cd
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x20], rax
mov edx, 0xb05ea44b
call fcn.201c2790
movzx esi, al
jmp 0x201c4b66
cmp edi, 0x10
je 0x201c2fed
cmp edi, 0x12
jne 0x201c30a4
nop
mov esi, dword [0x2058d7c0]
jmp 0x201c4b66
test r15, r15
jle 0x201c4b25
mov rbx, r15
jmp 0x201c2c67
cmp rbx, rsi
cmovb rsi, rbx
mov rcx, r14
mov r8, rsi
mov r9d, 0x35d4700d
call fcn.201c1b00
add r14, rsi
sub rbx, rsi
mov rax, qword [r13 + 0x58]
sub dword [rax], esi
mov rax, qword [r13 + 0x40]
add qword [rax], rsi
test rbx, rbx
jle 0x201c2ca5
nop
mov rax, qword [r13 + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x201c2c7f
nop
mov rax, qword [r13 + 0x58]
mov esi, dword [rax]
test esi, esi
jg 0x201c2c37
nop
movzx edx, byte [r14]
mov rax, qword [r13]
mov rax, qword [rax + 0x18]
mov rcx, r13
call qword [case.0x200c66ec.0]
cmp eax, 0xffffffff
je 0x201c2ca5
inc r14
dec rbx
test rbx, rbx
jg 0x201c2c67
cmp edi, 0x15
ja 0x201c4b86
sub r15, rbx
mov rsi, r15
jmp 0x201c4b66
cmp edi, 1
jne 0x201c30c2
nop
cmp qword [rsp + 0x50], 0
jle 0x201c4b25
nop
cmp qword [r15 + 0x68], 0
je 0x201c3bc0
lea r14, [r15 + 0x50]
mov r13, qword [rsp + 0x50]
nop
mov rax, qword [r15 + 0x38]
mov rcx, qword [rax]
test rcx, rcx
je 0x201c2d28
nop
mov rax, qword [r14]
mov ebx, dword [rax]
test ebx, ebx
jle 0x201c2d28
cmp r13, rbx
cmovb rbx, r13
mov rdx, rsi
mov r8, rbx
mov r9d, 0x35d4700d
call fcn.201c1b00
add rsi, rbx
sub r13, rbx
mov rax, qword [r15 + 0x50]
sub dword [rax], ebx
mov rax, qword [r15 + 0x38]
add qword [rax], rbx
jmp 0x201c2d4b
nop
mov rax, qword [r15]
mov rax, qword [rax + 0x38]
mov rcx, r15
call qword [case.0x200c66ec.0]
cmp eax, 0xffffffff
je 0x201c4860
nop
mov byte [rsi], al
inc rsi
dec r13
test r13, r13
jle 0x201c4860
cmp byte [rsp + 0x4c], 0
js 0x201c2ce4
jmp 0x201c2d83
cmp edi, 0x1f
jne 0x201c33ef
nop
mov rax, qword [rsp + 0x50]
mov r14, qword [rax + 0x80]
xor eax, eax
mov qword [rsp + 0x68], rax
test r14, r14
je 0x201c3948
mov rcx, r14
call fcn.2007a770
xor eax, eax
jmp 0x201c3647
nop
mov rcx, qword [rsp + 0x58]
or r15d, dword [rcx + 0x10]
xor eax, eax
cmp qword [rcx + 0x48], 0
mov r13d, dword [0x2058d7e4]
sete al
shl eax, 2
and r15d, 0x17
or r15d, eax
mov dword [rcx + 0x10], r15d
and r15d, dword [rcx + 0x14]
je 0x201c34ea
test dword [rsp + 0x4c], 0x200
je 0x201c4b25
test sil, 1
je 0x201c4876
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x201c4ae9
cmp edi, 0xf
jne 0x201c3459
nop
cmp qword [r14 + 0x80], 0
je 0x201c4b25
mov r15d, dword [0x2058d7d8]
lea rdi, [r14 + 0x80]
jmp 0x201c3532
nop
mov rax, qword [rsp + 0x58]
mov r15, qword [rax + 0x38]
mov rax, qword [r15]
test rax, rax
je 0x201c2e4b
nop
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx + 0x18]
cmp qword [rcx], rax
jae 0x201c2e4b
cmp esi, 0xffffffff
je 0x201c3c21
nop
movzx eax, byte [rax - 1]
cmp eax, esi
je 0x201c3c23
cmp esi, 0xffffffff
mov ecx, 0xffffffff
je 0x201c4181
nop
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rdi + 0x80]
test rdx, rdx
je 0x201c4181
nop
cmp qword [rdi + 0x68], 0
je 0x201c3b93
nop
mov rdx, qword [rdi + 0x38]
lea rax, [rdi + 0x70]
cmp qword [rdx], rax
mov ecx, 0xffffffff
je 0x201c4181
nop
mov byte [rdi + 0x70], sil
mov rcx, qword [rdi + 0x18]
mov r8, qword [rcx]
cmp r8, rax
je 0x201c4162
test byte [rsp + 0x4c], 0x40
jne 0x201c4144
nop
mov rsi, qword [rsp + 0x88]
jmp 0x201c4b66
cmp edi, 0x27
jbe 0x201c3483
cmp edi, 0x29
mov r15, qword [rsi + 0x80]
jne 0x201c3710
test r15, r15
je 0x201c3c84
mov esi, dword [0x2058d7c0]
jmp 0x201c4188
nop
cmp qword [0x205ec558], 0
jne 0x201c4124
nop
movzx eax, byte [0x2058d0ed]
cmp al, 0x6b
je 0x201c40b1
mov cl, 0x8e
mov al, 0xe0
lock cmpxchg byte [0x2058d0ed], cl
je 0x201c3eca
cmp al, 0x6b
jne 0x201c2f0e
jmp 0x201c40b1
nop
cmp qword [0x205ec550], 0
je 0x201c35b1
nop
mov qword [rsp + 0x30], rsi
mov rax, qword [rsp + 0x50]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbp
mov ecx, r15d
mov rdx, qword [rsp + 0x58]
mov r8d, r13d
mov r9d, r14d
call qword [0x205ec550]
mov esi, eax
jmp 0x201c4b66
nop
cmp qword [0x205ec4f8], 0
je 0x201c35dc
mov rcx, rsi
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [0x205ec4f8]
nop
mov esi, dword [0x2058d7d8]
lea r14, [rbp + 0x88]
cmp qword [rbp + 0x88], 0
je 0x201c3607
lea rcx, [rbp + 8]
call fcn.201badd0
mov edi, eax
xor dil, 1
mov rax, qword [rbp + 0x88]
mov ecx, 0xdccc2926
xor rcx, rsi
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov r9d, 0xe518e618
call fcn.201c1b00
test eax, eax
setne bl
or bl, dil
jmp 0x201c3662
mov rcx, rsi
mov rdx, qword [rsp + 0x50]
mov r8d, r14d
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x20424a54
nop
cmp qword [0x205ec538], 0
je 0x201c3734
nop
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r14d
mov rax, qword [rsp + 0x58]
mov dword [rsp + 0x20], eax
mov rcx, r15
mov edx, r13d
mov r8d, esi
mov r9, rbp
call qword [0x205ec538]
jmp 0x201c4b69
cmp qword [rsp + 0x58], r14
je 0x201c3750
xor eax, eax
jmp 0x201c4714
nop
mov rax, qword [rsi + 0x38]
mov rax, qword [rax]
test rax, rax
je 0x201c34f1
test dword [rsp + 0x4c], 0x200
jne 0x201c435c
nop
mov rcx, qword [rsi + 0x50]
cmp dword [rcx], 0
jle 0x201c34f1
test dword [rsp + 0x4c], 0x100
jne 0x201c3ec1
xor r14d, r14d
jmp 0x201c4210
mov rcx, r13
call fcn.204236dc
xor esi, esi
jmp 0x201c4b66
mov rcx, r14
call fcn.2044b34c
xor esi, esi
jmp 0x201c4b66
test rsi, rsi
jle 0x201c4b25
mov rbx, rsi
mov r15, qword [rsp + 0x58]
jmp 0x201c3110
cmp rbx, r14
cmovb r14, rbx
mov r12, qword [rsp + 0x50]
mov rdx, r12
mov r8, r14
mov r9d, 0x35d4700d
call fcn.201c1b00
add r12, r14
mov qword [rsp + 0x50], r12
sub rbx, r14
mov rax, qword [r15 + 0x50]
sub dword [rax], r14d
mov rax, qword [r15 + 0x38]
add qword [rax], r14
test rbx, rbx
jle 0x201c3163
nop
mov rax, qword [r15 + 0x38]
mov rcx, qword [rax]
test rcx, rcx
je 0x201c3135
nop
mov rax, qword [r15 + 0x50]
mov r14d, dword [rax]
test r14d, r14d
jg 0x201c30d5
test byte [rsp + 0x4c], 0x40
je 0x201c3d09
nop
mov rax, qword [r15]
mov rax, qword [rax + 0x38]
mov rcx, r15
call qword [case.0x200c66ec.0]
cmp eax, 0xffffffff
je 0x201c3163
nop
mov rcx, qword [rsp + 0x50]
mov byte [rcx], al
inc rcx
mov qword [rsp + 0x50], rcx
dec rbx
test rbx, rbx
jg 0x201c3110
cmp edi, 0x15
ja 0x201c4b86
sub rsi, rbx
jmp 0x201c4b66
mov rcx, r13
mov edx, 0x3f901888
call fcn.201be6f0
mov rcx, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
mov rbx, rcx
call qword [case.0x200c66ec.0]
test al, al
je 0x201c33a2
lea rax, [rsp + 0x90]
jmp 0x201c39df
mov edx, 0x8ae84466
call fcn.201c2790
mov esi, eax
jmp 0x201c4b66
mov r13d, ebp
mov r15d, r15d
mov ebx, dword [rsp + 0x58]
mov qword [rsp + 0x38], r15
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x28], 7
mov rcx, rbx
mov edx, 0x30205e99
mov r8, r13
xor r9d, r9d
call fcn.201c2790
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x201c4b66
mov edx, 0x8ae84466
call fcn.201c2790
cmp eax, 0x20
jne 0x201c4b86
nop
mov qword [rsp + 0x38], 0xfa
mov edx, 0x80190986
call fcn.201c2790
mov qword [rsp + 0x38], r15
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x28], 7
mov rcx, rbx
mov edx, 0x30205e99
mov r8, r13
xor r9d, r9d
call fcn.201c2790
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x201c4b66
mov edx, 0x8ae84466
call fcn.201c2790
cmp eax, 0x20
jne 0x201c4b86
nop
mov qword [rsp + 0x38], 0xfa
mov dword [rsp + 0x4c], 0x80190986
mov edx, 0x80190986
call fcn.201c2790
mov qword [rsp + 0x38], r15
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x28], 7
mov rcx, rbx
mov edx, 0x30205e99
mov r8, r13
xor r9d, r9d
call fcn.201c2790
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x201c4b66
mov edx, 0x8ae84466
call fcn.201c2790
mov ecx, 0xfa
mov qword [rsp + 0x58], rcx
cmp eax, 0x20
mov rsi, 0xffffffffffffffff
jne 0x201c4b66
nop
cmp qword [0x205ec508], 0
je 0x201c4a0f
nop
mov rcx, qword [rsp + 0x58]
call qword [0x205ec508]
cmp edi, 0x15
ja 0x201c4b86
jmp 0x201c4b25
nop
cmp qword [0x205ec500], 0
je 0x201c3950
nop
call qword [0x205ec500]
mov esi, eax
jmp 0x201c4b66
cmp edi, 0x2b
ja 0x201c3725
mov rsi, qword [rsp + 0x50]
cmp rsi, r15
je 0x201c3c93
nop
mov r13d, dword [0x2058d7e4]
lea rdi, [r14 + 0x10]
xor r13, 0x493bcdb8
inc rsi
lea rbx, [rsp + 0x78]
nop
movzx eax, byte [rsi - 1]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x20], rax
mov edx, 0xc0e2370b
mov r9, r13
call fcn.201c2790
mov byte [rsi - 1], al
cmp rsi, r15
je 0x201c3dc9
inc rsi
test dword [rsp + 0x4c], 0x100
je 0x201c336d
lea rax, [r14 + 8]
mov qword [r14 + 0x18], rax
lea rax, [r14 + 0x10]
mov qword [r14 + 0x20], rax
lea rax, [r14 + 0x28]
mov qword [r14 + 0x38], rax
lea rax, [r14 + 0x30]
mov qword [r14 + 0x40], rax
lea rax, [r14 + 0x48]
mov qword [r14 + 0x50], rax
lea rax, [r14 + 0x4c]
mov qword [r14 + 0x58], rax
mov qword [r14 + 0x48], 0
pxor xmm0, xmm0
movdqu xmmword [r14 + 8], xmm0
movdqu xmmword [r14 + 0x28], xmm0
jmp 0x201c39ed
nop
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xd0], rsi
mov rcx, rsi
call sub.KERNEL32.dll_LoadLibraryA
mov qword [rsp + 0x98], rax
test rax, rax
je 0x201c397b
nop
mov rdx, qword [rsp + 0x90]
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x70]
nop
test dword [rsp + 0x4c], 0x100
jne 0x201c3df7
nop
mov rsi, qword [rsp + 0x88]
jmp 0x201c4b66
nop
cmp qword [0x205ec5a0], 0
je 0x201c3989
test byte [rsp + 0x4c], 0x40
je 0x201c4876
mov rcx, r14
call qword [0x205ec5a0]
mov esi, eax
jmp 0x201c4b66
nop
mov rcx, qword [rsp + 0x50]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.20424780
lea rsi, [rsp + 0xd8]
mov r8d, 0x10
mov rcx, r14
mov rdx, rsi
mov r9d, 0x35d4700d
call fcn.201c1b00
mov qword [rsp + 0x28], r15
mov rdx, rsi
mov r8d, 0x89f88a46
mov rsi, qword [rsp + 0x58]
mov r9, rsi
call fcn.201bc540
lea rax, [0x2046d5c8]
mov qword [rsi], rax
jmp 0x201c4b66
xor esi, esi
jmp 0x201c4b66
nop
mov rax, qword [rsi]
mov rax, qword [rax + 0x38]
mov rcx, rsi
call qword [case.0x200c66ec.0]
mov r12d, eax
cmp eax, 0xffffffff
je 0x201c3bad
nop
mov rax, qword [rsi]
mov rax, qword [rax + 0x20]
mov rcx, rsi
mov edx, r12d
call qword [case.0x200c66ec.0]
test byte [rsp + 0x4c], 0x40
jne 0x201c3bb8
lea rdi, [rsp + 0x78]
nop
mov rax, qword [r14]
mov rax, qword [rax + 0x18]
mov rcx, r14
mov edx, 0xffffffff
call qword [case.0x200c66ec.0]
cmp eax, 0xffffffff
je 0x201c41a2
lea r14, [rsp + 0x98]
jmp 0x201c3615
nop
cmp qword [r14 + 0x80], 0
je 0x201c35a7
lea rdi, [r14 + 0x80]
mov rax, qword [r14 + 0x18]
lea rcx, [r14 + 0x70]
cmp qword [rax], rcx
jne 0x201c3a21
nop
mov ecx, dword [r14 + 0x90]
mov rdx, qword [r14 + 0x88]
mov qword [rax], rdx
mov rax, qword [r14 + 0x38]
mov qword [rax], rdx
sub ecx, edx
mov rax, qword [r14 + 0x50]
mov dword [rax], ecx
jmp 0x201c3a21
mov esi, 0xffffffff
jmp 0x201c4b66
nop
movzx eax, byte [0x2058d0cd]
cmp al, 0x37
je 0x201c4456
mov cl, 0x41
mov al, 0xb
lock cmpxchg byte [0x2058d0cd], cl
je 0x201c3f58
cmp al, 0x37
jne 0x201c35c3
jmp 0x201c4456
nop
movzx eax, byte [0x2058cf2d]
cmp al, 0x6f
je 0x201c4607
mov cl, 0xdb
mov al, 0x73
lock cmpxchg byte [0x2058cf2d], cl
je 0x201c3fba
cmp al, 0x6f
jne 0x201c35ee
jmp 0x201c4607
lea rdi, [rsp + 0xd0]
mov r15d, r13d
mov r13d, esi
mov esi, r13d
cmp byte [rsp + 0x4c], 0
js 0x201c3662
nop
mov rax, qword [rdi]
xor r15d, 0xd324d4fd
mov qword [rsp + 0x28], rax
mov r8, r15
mov r9d, 0xd9763cc7
call fcn.201c1b00
sar eax, 0x1f
xor ecx, ecx
mov qword [rsp + 0x68], rcx
test dword [rsp + 0x4c], 0x400
jne 0x201c41b5
xor r14d, r14d
mov rax, qword [rsp + 0x68]
jmp 0x201c4b7f
nop
mov byte [rbp + 0x84], 0
mov byte [rbp + 0x79], 0
lea rax, [rbp + 0x10]
mov qword [rbp + 0x20], rax
lea rax, [rbp + 0x18]
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0x30]
mov qword [rbp + 0x40], rax
lea rax, [rbp + 0x38]
mov qword [rbp + 0x48], rax
lea rax, [rbp + 0x50]
mov qword [rbp + 0x58], rax
lea rax, [rbp + 0x54]
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x50], 0
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x10], xmm0
movdqu xmmword [rbp + 0x30], xmm0
mov qword [r14], 0
mov rax, qword [0x205ebdb0]
mov qword [rbp + 0x7c], rax
mov qword [rbp + 0x70], 0
test bl, bl
je 0x201c4b25
nop
mov rax, qword [rbp]
movsxd rax, dword [rax + 4]
mov edi, dword [rbp + rax + 0x10]
xor ecx, ecx
cmp qword [rbp + rax + 0x48], 0
sete cl
shl ecx, 2
and edi, 0x15
or edi, ecx
or edi, 2
mov dword [rbp + rax + 0x10], edi
mov ebx, dword [rbp + rax + 0x14]
and edi, ebx
jne 0x201c48fd
xor esi, esi
jmp 0x201c4b66
test r15, r15
je 0x201c4b25
lea rdi, [rsi + 0x80]
jmp 0x201c39bc
mov rcx, rsi
call fcn.20423754
xor esi, esi
jmp 0x201c4b66
nop
movzx eax, byte [0x2058d05d]
xor ecx, ecx
mov qword [rsp + 0x68], rcx
cmp al, 0x3f
jne 0x201c3fc5
jmp 0x201c407b
mov rsi, r14
jmp 0x201c4b66
mov ecx, 0x219ff05a
xor r8d, r8d
movabs r9, 0xaaaaaaaaaaaaaaab
lea r10, [0x20475f00]
lea r11, [0x2058ceb0]
mov rax, rcx
mul r9
shr rdx, 1
and rdx, 0xfffffffffffffffc
lea rdx, [rdx + rdx*2]
mov rax, r10
sub rax, rdx
movzx edx, byte [rax + r8 + 0x219ff05a]
xor dl, 0x70
add byte [r8 + r11], dl
cmp r8, 0xc
je 0x201c37c0
nop
movzx eax, byte [rax + r8 + 0x219ff05b]
xor al, 0x70
add byte [r8 + r11 + 1], al
add r8, 2
add rcx, 2
jmp 0x201c3778
mov al, 0xc9
xchg byte [0x2058cebd], al
nop
movzx eax, byte [0x2058cecd]
cmp al, 0xa8
je 0x201c388a
xor ecx, ecx
mov al, 0xa0
lock cmpxchg byte [0x2058cecd], cl
je 0x201c37ef
cmp al, 0xa8
jne 0x201c37da
jmp 0x201c388a
mov eax, 1
mov ecx, 0x2aed18c3
mov edx, 0xd512e749
mov r8d, 0x2aed18c4
mov r9d, 0xd512e748
lea r10, [0x2058cec0]
lea r11, [0x20475f10]
mov esi, r9d
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea edi, [rsi + rsi*2]
lea esi, [rsi + rdi*4]
add esi, r8d
movzx ebx, byte [rax + r10 - 1]
xor bl, byte [rsi + r11]
xor bl, 0x40
mov byte [rax + r10 - 1], bl
cmp rax, 0xd
je 0x201c3882
mov esi, edx
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea edi, [rsi + rsi*2]
lea esi, [rsi + rdi*4]
add esi, ecx
movzx ebx, byte [rax + r10]
mov esi, esi
xor bl, byte [rsi + r11]
xor bl, 0x40
mov byte [rax + r10], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x201c3818
mov al, 0xa8
xchg byte [0x2058cecd], al
lea rax, [0x2058ceb0]
mov qword [rsp + 0x28], rax
lea r9, [0x2058cec0]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec4e0], rax
nop
call qword [0x205ec4e0]
mov esi, eax
jmp 0x201c4b66
nop
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x201c3eb9
nop
mov rax, qword [rcx + 0x58]
test r13, r13
jle 0x201c41cf
nop
mov r15d, dword [rax]
test r15d, r15d
jle 0x201c41cf
cmp r15, r13
cmovae r15, r13
mov rcx, rsi
mov r8, r15
mov r9d, 0x35d4700d
call fcn.201c1b00
add rsi, r15
mov r14, r13
sub r14, r15
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx + 0x58]
sub dword [rax], r15d
mov rax, qword [rcx + 0x40]
add qword [rax], r15
jmp 0x201c41e0
nop
movzx eax, byte [0x2058cf0d]
cmp al, 0xba
jne 0x201c3ca3
cmp byte [rsp + 0x4c], 0
js 0x201c3d9e
xor esi, esi
jmp 0x201c4b66
xor r14d, r14d
jmp 0x201c4727
nop
movzx eax, byte [0x2058cf5d]
cmp al, 0x5f
je 0x201c4335
mov cl, 0x10
mov al, 0x99
lock cmpxchg byte [0x2058cf5d], cl
je 0x201c421b
cmp al, 0x5f
jne 0x201c3962
jmp 0x201c4335
xor eax, eax
mov qword [rsp + 0x68], rax
xor eax, eax
jmp 0x201c4cb3
nop
movzx eax, byte [0x2058d23d]
cmp al, 0xb7
je 0x201c430d
mov cl, 0xeb
mov al, 0xe4
lock cmpxchg byte [0x2058d23d], cl
je 0x201c4260
cmp al, 0xb7
jne 0x201c399b
jmp 0x201c430d
lea rdi, [rsp + 0x70]
xor r15d, r15d
test byte [rsp + 0x4c], 0x40
mov rbx, qword [rsp + 0x50]
jne 0x201c3ae2
nop
mov rax, qword [rbx + 0x20]
cmp rax, 0xffffffffffffffff
je 0x201c4b25
add rbx, 0x20
mov esi, dword [rsp + 0x4c]
test esi, 0x200
jne 0x201c39f9
xor ebx, ebx
nop
mov qword [r14 + 0x68], rbx
xor esi, esi
jmp 0x201c4b66
nop
mov qword [rsp + 0x28], rax
mov edx, 0xbd96748d
call fcn.201c2790
mov qword [rbx], 0xffffffffffffffff
test sil, sil
jns 0x201c4b25
mov r15, rax
lea rdi, [rsp + 0x70]
nop
mov rcx, qword [r14 + 0x68]
test rcx, rcx
je 0x201c3c3e
nop
mov rax, qword [rsp + 0x58]
mov byte [rsp + 0x67], al
lea r8, [rsp + 0xc0]
lea r9, [rsp + 0x68]
lea rdx, [r14 + 0x74]
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
lea r10, [rsp + 0x70]
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r8
lea rsi, [rsp + 0xa0]
mov qword [rsp + 0x28], rsi
lea r8, [rsp + 0x78]
mov qword [rsp + 0x20], r8
lea r12, [rsp + 0x67]
mov r8, r12
call qword [case.0x200c66ec.0]
cmp eax, 2
jae 0x201c3cba
nop
mov r15, qword [rsp + 0x70]
sub r15, rsi
je 0x201c3ab6
nop
mov r8, qword [rdi]
mov rcx, rsi
mov rdx, r15
call fcn.20078f10
mov esi, 0xffffffff
cmp r15, rax
jne 0x201c3c86
nop
mov byte [r14 + 0x71], 1
cmp qword [rsp + 0x78], r12
mov eax, dword [rsp + 0x58]
mov esi, 0xffffffff
cmovne rsi, rax
jmp 0x201c4b66
xor eax, eax
mov qword [rsp + 0x68], rax
mov rbp, r13
jmp 0x201c49f9
xor r8d, r8d
mov rax, r13
or rax, rbp
sete r8b
shl r8d, 2
mov rcx, r15
mov rdx, r13
mov r9, rbp
call fcn.20079c20
test eax, eax
jne 0x201c4b25
nop
mov rcx, qword [rdi]
mov byte [rsi + 0x7c], 1
mov byte [rsi + 0x71], 0
lea rax, [rsi + 8]
mov qword [rsi + 0x18], rax
lea rax, [rsi + 0x10]
mov qword [rsi + 0x20], rax
lea rax, [rsi + 0x28]
mov qword [rsi + 0x38], rax
lea rax, [rsi + 0x30]
mov qword [rsi + 0x40], rax
lea rax, [rsi + 0x48]
mov qword [rsi + 0x50], rax
lea rax, [rsi + 0x4c]
mov qword [rsi + 0x58], rax
mov qword [rsi + 0x48], 0
pxor xmm0, xmm0
movdqu xmmword [rsi + 8], xmm0
movdqu xmmword [rsi + 0x28], xmm0
test rcx, rcx
je 0x201c4827
mov qword [rsp + 0x50], rdi
lea r15, [rsi + 0x18]
lea r12, [rsi + 0x20]
lea r13, [rsi + 0x38]
lea rbp, [rsi + 0x40]
lea rbx, [rsi + 0x50]
lea rdi, [rsi + 0x58]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x68], rax
xor r14d, r14d
jmp 0x201c4be5
movzx ecx, sil
call fcn.20079be0
cmp eax, 0xffffffff
mov rcx, rsi
jne 0x201c4181
jmp 0x201c2e7b
cmp byte [rsp + 0x4c], 0
js 0x201c2ade
mov esi, r12d
jmp 0x201c4b66
nop
mov ebp, dword [0x2058d7e4]
mov rax, qword [r15 + 0x38]
mov rcx, qword [rax]
test rcx, rcx
je 0x201c3e10
nop
mov rax, qword [r15 + 0x50]
movsxd rbx, dword [rax]
test rbx, rbx
je 0x201c3e10
nop
mov r13, qword [rsp + 0x50]
cmp rbx, r13
cmovae rbx, r13
mov rdx, rsi
mov r8, rbx
mov r9d, 0x35d4700d
call fcn.201c1b00
add rsi, rbx
sub r13, rbx
mov rax, qword [r15 + 0x50]
sub dword [rax], ebx
mov rax, qword [r15 + 0x38]
movsxd rcx, ebx
add qword [rax], rcx
jmp 0x201c3e15
xor esi, esi
nop
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx + 0x50]
inc dword [rax]
mov rax, qword [rcx + 0x38]
dec qword [rax]
mov rcx, rsi
jmp 0x201c4181
nop
mov rax, qword [rdi]
mov rsi, qword [rsp + 0x58]
movsx ecx, sil
xor r15d, 0xd0fbfa77
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov rcx, r15
mov r9d, 0xdba66344
call fcn.201c1b00
cmp eax, 0xffffffff
mov eax, esi
mov esi, 0xffffffff
cmovne rsi, rax
jmp 0x201c4b66
xor eax, eax
jmp 0x201c473f
xor esi, esi
test byte [rsp + 0x4c], 0x40
je 0x201c4735
jmp 0x201c3d04
xor eax, eax
cmp byte [rsp + 0x4c], 0
cmovns rsi, rax
jmp 0x201c4b66
mov cl, 0x46
mov al, 0xac
lock cmpxchg byte [0x2058cf0d], cl
je 0x201c3d09
cmp al, 0xba
jne 0x201c3ca5
jmp 0x201c3d9e
mov esi, 0xffffffff
cmp eax, 3
jne 0x201c3d04
nop
mov rax, qword [rdi]
movsx rcx, byte [rsp + 0x67]
xor r15d, 0xd0fbfa77
mov ecx, ecx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov rcx, r15
mov r9d, 0x3be69644
call fcn.201c1b00
cmp eax, 0xffffffff
mov eax, dword [rsp + 0x58]
mov esi, 0xffffffff
cmovne rsi, rax
jmp 0x201c4b66
jmp 0x201c4b66
mov eax, 1
mov ecx, 0xb2b7e9b7
mov edx, 0x4d481652
mov r8d, 0xb2b7e9b8
mov r9d, 0x4d481650
mov r10d, 0xcccccccd
lea r11, [0x2058cf00]
lea rbx, [0x20475f40]
mov r14d, r9d
imul r14, r10
shr r14, 0x23
lea r14d, [r14 + r14*4]
lea r14d, [r8 + r14*2]
movzx ebp, byte [r14 + rbx]
xor bpl, 0x18
add byte [rax + r11 - 1], bpl
cmp rax, 0xd
je 0x201c3d96
mov r14d, edx
imul r14, r10
shr r14, 0x23
lea r14d, [r14 + r14*4]
lea ebp, [rcx + r14*2]
mov r14d, ebp
movzx ebp, byte [r14 + rbx]
xor bpl, 0x18
add byte [rax + r11], bpl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x201c3d38
mov al, 0xba
xchg byte [0x2058cf0d], al
nop
movzx eax, byte [0x2058cf1c]
cmp al, 0xea
je 0x201c440b
mov cl, 0x9e
mov al, 0xa4
lock cmpxchg byte [0x2058cf1c], cl
je 0x201c43da
cmp al, 0xea
jne 0x201c3db0
jmp 0x201c440b
test byte [rsp + 0x4c], 0x40
jne 0x201c4b66
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x201c4a1f
mov rax, qword [rsp + 0x50]
add rax, 0x38
test dword [rsp + 0x4c], 0x100
je 0x201c344b
nop
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x50]
inc dword [rcx]
mov rax, qword [rax]
dec qword [rax]
xor esi, esi
jmp 0x201c4b66
mov r13, qword [rsp + 0x50]
nop
cmp qword [r15 + 0x80], 0
je 0x201c4860
nop
mov rax, qword [r15 + 0x18]
lea rcx, [r15 + 0x70]
cmp qword [rax], rcx
jne 0x201c3e53
nop
mov ecx, dword [r15 + 0x90]
mov rdx, qword [r15 + 0x88]
mov qword [rax], rdx
mov rax, qword [r15 + 0x38]
mov qword [rax], rdx
sub ecx, edx
mov rax, qword [r15 + 0x50]
mov dword [rax], ecx
mov rbx, rbp
xor rbx, 0x6ab844df
xor r14d, r14d
cmp r13, 0x1000
jb 0x201c47f2
nop
mov r8, qword [r15 + 0x80]
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], 0xfff
mov edx, 1
mov rcx, rsi
mov r9d, 0xcf74d6d2
call fcn.201c1b00
sub r13, rax
cmp rax, 0xfff
jne 0x201c4860
add rsi, rax
test byte [rsp + 0x4c], 0x40
jne 0x201c3e60
mov rax, qword [rsp + 0x68]
jmp 0x201c4b7f
mov r14, r13
jmp 0x201c41e0
nop
movzx esi, byte [rax]
jmp 0x201c4b66
mov eax, 1
mov ecx, 0x9ac45253
mov edx, 0x653badb9
mov r8d, 0x9ac45254
mov r9d, 0x653badb8
lea r10, [0x2058d0e0]
lea r11, [0x204760f0]
mov esi, r9d
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea edi, [rsi + rsi*2]
lea esi, [rsi + rdi*4]
add esi, r8d
movzx ebx, byte [rsi + r11]
xor bl, 0x82
add byte [rax + r10 - 1], bl
cmp rax, 0xd
je 0x201c40a9
mov esi, edx
imul rsi, rsi, 0x4ec4ec4f
shr rsi, 0x22
lea edi, [rsi + rsi*2]
lea esi, [rsi + rdi*4]
add esi, ecx
mov esi, esi
movzx ebx, byte [rsi + r11]
xor bl, 0x82
add byte [rax + r10], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x201c3ef3
mov eax, 0x94dc2e88
mov ecx, 0x6b23d184
lea rdx, [0x2058d0c0]
lea r8, [0x204760d0]
xor r9d, r9d
mov r10d, ecx
imul r10, r10, 0x4ec4ec4f
shr r10, 0x22
lea r11d, [r10 + r10*2]
lea r10d, [r10 + r11*4]
add r10d, eax
movzx r11d, byte [r9 + rdx]
xor r11b, byte [r10 + r8]
xor r11b, 0x69
mov byte [r9 + rdx], r11b
cmp r9, 0xc
je 0x201c444e
inc r9
dec eax
inc ecx
test byte [rsp + 0x4c], 0x40
jne 0x201c3f73
jmp 0x201c3655
test byte [rsp + 0x4c], 0x40
jne 0x201c4572
mov cl, 0xed
mov al, 0xf7
lock cmpxchg byte [0x2058d05d], cl
je 0x201c3fdc
cmp al, 0x3f
jne 0x201c3fc7
jmp 0x201c407b
mov eax, 1
mov ecx, 0xbd01e922
mov edx, 0x42fe16ee
mov r8d, 0xbd01e923
mov r9d, 0x42fe16ed
lea r11, [0x2058d050]
lea rdi, [0x20476060]
mov ebx, r9d
mov r10d, 0xf0f0f0f1
imul rbx, r10
shr rbx, 0x24
lea r10d, [r8 + rbx]
shl ebx, 4
add ebx, r10d
movzx r10d, byte [rbx + rdi]
xor r10b, 0xfa
add byte [rax + r11 - 1], r10b
cmp rax, 0xd
je 0x201c4073
mov r10d, edx
mov ebx, 0xf0f0f0f1
imul r10, rbx
shr r10, 0x24
lea ebx, [rcx + r10]
shl r10d, 4
add r10d, ebx
mov r10d, r10d
movzx r10d, byte [r10 + rdi]
xor r10b, 0xfa
add byte [rax + r11], r10b
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x201c4005
mov al, 0x3f
xchg byte [0x2058d05d], al
nop
movzx eax, byte [0x2058d06c]
cmp al, 0x8b
je 0x201c4cdf
mov cl, 0xca
mov al, 0x9e
lock cmpxchg byte [0x2058d06c], cl
je 0x201c40a2
cmp al, 0x8b
jne 0x201c408d
jmp 0x201c4cdf
xor eax, eax
jmp 0x201c4c6c
mov al, 0x6b
xchg byte [0x2058d0ed], al
nop
movzx eax, byte [0x2058d0fa]
cmp al, 0x84
je 0x201c4100
mov cl, 0x8d
mov al, 0xd7
lock cmpxchg byte [0x2058d0fa], cl
je 0x201c40d1
cmp al, 0x84
jne 0x201c40bf
jmp 0x201c4100
nop
movq xmm0, qword [0x2058d0f0]
paddb xmm0, xmmword [0x204754d0]
movq qword [0x2058d0f0], xmm0
add byte [0x2058d0f8], 0xe0
add byte [0x2058d0f9], 0x53
mov al, 0x84
xchg byte [0x2058d0fa], al
lea rax, [0x2058d0e0]
mov qword [rsp + 0x28], rax
lea r9, [0x2058d0f0]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec558], rax
nop
mov rcx, qword [rsp + 0x50]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [0x205ec558]
nop
mov rdi, qword [rsp + 0x58]
mov qword [rdi + 0x88], r8
mov r8, qword [rdi + 0x50]
movsxd r8, dword [r8]
add r8, qword [rdx]
mov qword [rdi + 0x90], r8
nop
mov qword [rcx], rax
mov rcx, qword [rdi + 0x38]
mov qword [rcx], rax
mov rax, qword [rdi + 0x50]
mov dword [rax], 1
cmp byte [rsp + 0x4c], 0
mov rcx, rsi
js 0x201c4188
mov esi, ecx
jmp 0x201c4b66
xor esi, 0x9ba09de8
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x38], rsi
mov edx, 0x2f65f1db
call fcn.201c2790
xor eax, eax
mov qword [rsp + 0x68], rax
test dword [rsp + 0x4c], 0x100
jne 0x201c41c7
xor eax, eax
cmp byte [rsp + 0x68], 0
jne 0x201c4b86
mov esi, eax
jmp 0x201c4b66
xor r14d, r14d
jmp 0x201c4b7d
mov r14, r13
test dword [rsp + 0x4c], 0x100
jne 0x201c47e9
test r14, r14
jle 0x201c4210
nop
mov rax, qword [rsp + 0x58]
mov r8, qword [rax + 0x80]
test r8, r8
je 0x201c4210
mov rcx, rsi
mov rdx, r14
call fcn.20078f10
mov rsi, rax
sub rsi, r14
add rsi, r13
jmp 0x201c4b66
sub r13, r14
mov rsi, r13
jmp 0x201c4b66
nop
movq xmm0, qword [0x2058cf50]
paddb xmm0, xmmword [0x204754a0]
movq qword [0x2058cf50], xmm0
movq xmm0, qword [0x2058cf58]
paddb xmm0, xmmword [0x204754b0]
movd dword [0x2058cf58], xmm0
add byte [0x2058cf5c], 0x99
mov al, 0x5f
xchg byte [0x2058cf5d], al
jmp 0x201c4335
mov eax, 1
mov ecx, 0xcf00be51
mov edx, 0x30ff41ba
mov r8d, 0xcf00be52
mov r9d, 0x30ff41b8
mov r10d, 0xaaaaaaab
lea r11, [0x2058d230]
lea rbx, [0x20476230]
mov r15d, r9d
imul r15, r10
shr r15, 0x23
lea r15d, [r15 + r15*2]
lea r15d, [r8 + r15*4]
movzx r15d, byte [r15 + rbx]
xor r15b, 0x5d
add byte [rax + r11 - 1], r15b
cmp rax, 0xd
je 0x201c42ed
mov r15d, edx
imul r15, r10
shr r15, 0x23
lea r15d, [r15 + r15*2]
lea r15d, [rcx + r15*4]
mov r15d, r15d
movzx r15d, byte [r15 + rbx]
xor r15b, 0x5d
add byte [rax + r11], r15b
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x201c428f
mov al, 0xb7
xchg byte [0x2058d23d], al
test dword [rsp + 0x4c], 0x400
jne 0x201c430d
cmp edi, 0x15
ja 0x201c4b86
jmp 0x201c4b25
nop
movzx eax, byte [0x2058d250]
cmp al, 0x77
je 0x201c437d
mov cl, 0x4c
mov al, 0x86
lock cmpxchg byte [0x2058d250], cl
je 0x201c435c
cmp al, 0x77
je 0x201c437d
test dword [rsp + 0x4c], 0x100
je 0x201c431b
nop
movzx eax, byte [0x2058cf6f]
cmp al, 0x67
je 0x201c47b3
mov cl, 0x7d
mov al, 0x6d
lock cmpxchg byte [0x2058cf6f], cl
je 0x201c43b4
cmp al, 0x67
jne 0x201c4347
jmp 0x201c47b3
nop
movdqa xmm0, xmmword [0x2058d240]
pxor xmm0, xmmword [0x20475490]
movdqa xmmword [0x2058d240], xmm0
mov al, 0x77
xchg byte [0x2058d250], al
lea rax, [0x2058d230]
mov qword [rsp + 0x28], rax
lea r9, [0x2058d240]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec5a0], rax
mov rcx, r14
call rax
cmp edi, 0x15
jbe 0x201c47e2
jmp 0x201c4b86
test byte [rsp + 0x4c], 0x40
je 0x201c4747
lea rdi, [rsp + 0x78]
lea rbx, [rsp + 0xa0]
mov eax, esi
lea rsi, [rsp + 0x70]
xor edx, edx
jmp 0x201c4995
movabs rax, 0x1e74a2a08c2fcdfb
xor qword [0x2058cf10], rax
movq xmm0, qword [0x2058cf18]
pxor xmm0, xmmword [0x204754c0]
movd dword [0x2058cf18], xmm0
mov al, 0xea
xchg byte [0x2058cf1c], al
lea rax, [0x2058cf00]
mov qword [rsp + 0x28], rax
lea r9, [0x2058cf10]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec4f0], rax
mov rcx, rsi
call rax
cmp edi, 0x15
jbe 0x201c47e2
jmp 0x201c4b86
nop
mov byte [rsi + 0x71], 0
mov al, 1
jmp 0x201c4714
mov al, 0x37
xchg byte [0x2058d0cd], al
nop
movzx eax, byte [0x2058d0df]
cmp al, 0x15
je 0x201c451d
mov cl, 0x81
mov al, 0x2a
lock cmpxchg byte [0x2058d0df], cl
je 0x201c447d
cmp al, 0x15
jne 0x201c4468
jmp 0x201c451d
mov ecx, 0x81826a60
mov r8d, 0x81826a5e
xor r10d, r10d
lea rax, [0x204760e0]
mov ebx, 0x81826a58
add rbx, rax
lea r11, [0x2058d0d0]
movabs r12, 0xaaaaaaaaaaaaaaab
mov rax, rcx
mul r12
mov r9, rdx
mov rax, r8
mul r12
shr rdx, 1
and rdx, 0xfffffffffffffffc
lea rax, [rdx + rdx*2]
mov rdx, rbx
sub rdx, rax
movzx eax, byte [r10 + r11]
xor al, byte [rdx + r10 + 7]
xor al, 0xa
mov byte [r10 + r11], al
cmp r10, 0xe
je 0x201c4515
shr r9, 1
and r9, 0xfffffffffffffffc
lea rax, [r9 + r9*2]
mov rdx, rbx
sub rdx, rax
add rdx, 8
movzx eax, byte [r10 + r11 + 1]
xor al, byte [rdx + r10]
xor al, 0xa
mov byte [r10 + r11 + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x201c44ab
mov al, 0x15
xchg byte [0x2058d0df], al
lea rax, [0x2058d0c0]
mov qword [rsp + 0x28], rax
lea r9, [0x2058d0d0]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec550], rax
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rbp
mov ecx, r15d
mov rdx, qword [rsp + 0x58]
mov r8d, r13d
mov r9d, r14d
call rax
cmp edi, 0x15
ja 0x201c4b86
jmp 0x201c47e2
mov eax, 1
mov ecx, 0x3d2e2a61
mov edx, 0xc2d1d5aa
mov r8d, 0x3d2e2a62
mov r9d, 0xc2d1d5a8
mov r10d, 0xaaaaaaab
lea r11, [0x2058cf20]
lea rbx, [0x20475f50]
mov r14d, r9d
imul r14, r10
shr r14, 0x23
lea r14d, [r14 + r14*2]
lea r14d, [r8 + r14*4]
movzx ebp, byte [r14 + rbx]
xor bpl, 0x37
add byte [rax + r11 - 1], bpl
cmp rax, 0xd
je 0x201c45ff
mov r14d, edx
imul r14, r10
shr r14, 0x23
lea r14d, [r14 + r14*2]
lea ebp, [rcx + r14*4]
mov r14d, ebp
movzx ebp, byte [r14 + rbx]
xor bpl, 0x37
add byte [rax + r11], bpl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x201c45a1
mov al, 0x6f
xchg byte [0x2058cf2d], al
nop
movzx eax, byte [0x2058cf41]
cmp al, 0x72
je 0x201c46ce
mov cl, 0xf8
mov al, 0xdc
lock cmpxchg byte [0x2058cf41], cl
je 0x201c462e
cmp al, 0x72
jne 0x201c4619
jmp 0x201c46ce
mov eax, 0x42ab2b72
mov ecx, 0xbd54d49e
mov edx, 0x42ab2b73
mov r8d, 0xbd54d49d
xor r9d, r9d
mov r10d, 0xf0f0f0f1
lea r11, [0x2058cf30]
lea rbx, [0x20475f60]
mov r14d, r8d
imul r14, r10
shr r14, 0x24
lea ebp, [rdx + r14]
shl r14d, 4
add r14d, ebp
movzx ebp, byte [r9 + r11]
xor bpl, byte [r14 + rbx]
xor bpl, 0x2b
mov byte [r9 + r11], bpl
cmp r9, 0x10
je 0x201c46c6
mov r14d, ecx
imul r14, r10
shr r14, 0x24
lea ebp, [rax + r14]
shl r14d, 4
add r14d, ebp
movzx ebp, byte [r9 + r11 + 1]
mov r14d, r14d
xor bpl, byte [r14 + rbx]
xor bpl, 0x2b
mov byte [r9 + r11 + 1], bpl
add r9, 2
add eax, 0xfffffffe
add ecx, 2
add edx, 0xfffffffe
add r8d, 2
jmp 0x201c465a
mov al, 0x72
xchg byte [0x2058cf41], al
lea rax, [0x2058cf20]
mov qword [rsp + 0x28], rax
lea r9, [0x2058cf30]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec4f8], rax
mov rcx, rsi
call rax
cmp edi, 0x15
ja 0x201c4b86
jmp 0x201c4b63
cmp byte [rsp + 0x4c], 0
js 0x201c4747
nop
cmp byte [rsi + 0x71], 0
sete al
test dword [rsp + 0x4c], 0x100
jne 0x201c473f
lea rax, [rsi + 0x10]
mov qword [rsp + 0x68], rax
test dword [rsp + 0x4c], 0x200
je 0x201c4b8f
xor eax, eax
xor r14d, r14d
jmp 0x201c4b7f
movzx esi, al
jmp 0x201c4b66
mov ecx, 0x7f1fee86
xor r8d, r8d
movabs r9, 0x4924924924924925
lea r10, [0x20475f80]
lea r11, [0x2058cf60]
mov rax, rcx
shr rax, 1
mul r9
shr rdx, 1
imul rax, rdx, 0xfffffffffffffff2
add rax, r10
movzx edx, byte [r8 + rax + 0x7f1fee86]
xor dl, 0x98
add byte [r8 + r11], dl
cmp r8, 0xe
je 0x201c47ab
nop
movzx eax, byte [rax + r8 + 0x7f1fee87]
xor al, 0x98
add byte [r8 + r11 + 1], al
add r8, 2
add rcx, 2
jmp 0x201c4767
mov al, 0x67
xchg byte [0x2058cf6f], al
lea rax, [0x2058cf50]
mov qword [rsp + 0x28], rax
lea r9, [0x2058cf60]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec500], rax
call rax
cmp edi, 0x15
ja 0x201c4b86
mov esi, eax
jmp 0x201c4b66
nop
movzx esi, byte [rax]
jmp 0x201c4b66
test r13, r13
je 0x201c485d
nop
mov r8, qword [r15 + 0x80]
xor ebp, 0x6ab844df
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbp
mov edx, 1
mov rcx, rsi
mov r9d, 0x7cd82552
call fcn.201c1b00
sub r13, rax
jmp 0x201c4860
test dword [rsp + 0x4c], 0x100
jne 0x201c4851
nop
mov qword [rdi], 0
mov rax, qword [0x205ebdb0]
mov qword [rsi + 0x74], rax
mov qword [rsi + 0x68], 0
jmp 0x201c4b66
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x201c4b50
xor r13d, r13d
cmp edi, 0x15
ja 0x201c4b86
mov rsi, qword [rsp + 0x50]
sub rsi, r13
jmp 0x201c4b66
mov ecx, r13d
xor ecx, 0xb35e2bf9
call fcn.201bae70
mov ecx, r13d
xor ecx, 0xcb8edf3b
call fcn.201bae90
test r15b, 2
lea rax, [0x2058c7d0]
lea rdi, [0x2058c7b0]
cmove rdi, rax
xor r13d, 0x2603c9f4
mov ecx, r13d
call fcn.201baeb0
test r15b, 4
lea rsi, [0x2058c790]
cmove rsi, rdi
lea rdi, [rsp + 0x78]
mov rcx, rdi
mov edx, 1
call fcn.2006bb00
lea rbx, [rsp + 0xa0]
mov rcx, rbx
mov rdx, rsi
mov r8, rdi
call fcn.2007b030
lea rdx, [0x204c88b8]
mov rcx, rbx
call fcn.200782e0
mov ecx, esi
xor ecx, 0x8d03cf24
call fcn.201bae70
mov ecx, esi
xor ecx, 0xf5d33be6
call fcn.201bae90
test bl, 2
lea rax, [0x2058c7d0]
lea rbx, [0x2058c7b0]
cmove rbx, rax
xor esi, 0x185e2d29
mov ecx, esi
call fcn.201baeb0
test dil, 4
lea rsi, [0x2058c790]
cmove rsi, rbx
lea rdi, [rsp + 0x78]
mov rcx, rdi
mov edx, 1
call fcn.2006bb00
lea rbx, [rsp + 0xa0]
mov rcx, rbx
mov rdx, rsi
mov r8, rdi
call fcn.2007b030
lea rdx, [0x204c88b8]
mov rcx, rbx
call fcn.200782e0
nop
mov rax, qword [rdi]
mov rdx, qword [rax]
test rdx, rdx
je 0x201c49c9
nop
mov rax, qword [rbx]
mov eax, dword [rax]
test eax, eax
jle 0x201c49d3
mov r14d, eax
cmp rbp, r14
cmovb r14, rbp
mov rcx, rsi
mov r8, r14
mov r9d, 0x35d4700d
call fcn.201c1b00
add rsi, r14
sub rbp, r14
mov rax, qword [rbx]
sub dword [rax], r14d
mov rax, qword [rdi]
add qword [rax], r14
test rbp, rbp
jg 0x201c497f
jmp 0x201c49f9
test dword [rsp + 0x4c], 0x200
je 0x201c4a0f
nop
movzx edx, byte [rsi]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x200c66ec.0]
cmp eax, 0xffffffff
je 0x201c49f9
inc rsi
dec rbp
test rbp, rbp
jg 0x201c497f
test byte [rsp + 0x68], 1
jne 0x201c4b86
sub r13, rbp
mov rsi, r13
jmp 0x201c4b66
nop
movzx eax, byte [0x2058cf7d]
cmp al, 0xca
je 0x201c4acb
mov cl, 0x6f
mov al, 0x5b
lock cmpxchg byte [0x2058cf7d], cl
je 0x201c4a36
cmp al, 0xca
jne 0x201c4a21
jmp 0x201c4acb
mov ecx, 0x3f924f3f
mov r8d, 0x3f924f3e
xor r10d, r10d
movabs r11, 0x4ec4ec4ec4ec4ec5
lea rsi, [0x20475f90]
lea rdi, [0x2058cf70]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
shr rdx, 2
imul rax, rdx, 0xfffffffffffffff3
add rax, rsi
add rax, 0x3f924f3e
movzx edx, byte [r10 + rdi]
xor dl, byte [r10 + rax]
xor dl, 0xb4
mov byte [r10 + rdi], dl
cmp r10, 0xc
je 0x201c4ac3
shr r9, 2
imul rax, r9, 0xfffffffffffffff3
add rax, rsi
add rax, 0x3f924f3f
movzx edx, byte [r10 + rdi + 1]
xor dl, byte [rax + r10]
xor dl, 0xb4
mov byte [r10 + rdi + 1], dl
add r10, 2
add rcx, 2
add r8, 2
jmp 0x201c4a5c
mov al, 0xca
xchg byte [0x2058cf7d], al
nop
movzx eax, byte [0x2058cf86]
cmp al, 0x1c
je 0x201c4af3
mov cl, 0xbd
mov al, 0x74
lock cmpxchg byte [0x2058cf86], cl
je 0x201c4b29
cmp al, 0x1c
jne 0x201c4ad9
test dword [rsp + 0x4c], 0x400
jne 0x201c4b5a
lea rax, [0x2058cf70]
mov qword [rsp + 0x28], rax
lea r9, [0x2058cf80]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec508], rax
mov rcx, qword [rsp + 0x58]
call rax
test byte [rsp + 0x68], 1
jne 0x201c4b86
xor esi, esi
jmp 0x201c4b66
nop
movdqa xmm0, xmmword [0x2058cf80]
pxor xmm0, xmmword [0x204754e0]
movd dword [0x2058cf80], xmm0
xor byte [0x2058cf84], 0x86
xor byte [0x2058cf85], 0x41
mov al, 0x1c
xchg byte [0x2058cf86], al
jmp 0x201c4af3
xor ecx, ecx
xor edx, edx
call fcn.200782e0
mov rsi, rax
mov rax, rsi
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
mov rsi, r14
test al, al
je 0x201c4b66
mov rsi, 0xffffffffffffffff
jmp 0x201c4b66
nop
movzx ecx, byte [r14]
mov rdx, qword [rsp + 0x68]
call fcn.20078f90
mov byte [r14], al
inc r14
lea rcx, [rsp + 0x78]
lea rbx, [rsp + 0x90]
lea r12, [rsp + 0xa0]
lea r13, [rsp + 0x98]
lea rbp, [rsp + 0x88]
lea rdi, [rsp + 0x78]
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x50], rax
cmp r14, qword [rsp + 0x58]
je 0x201c4b7d
mov r15, rbx
cmp byte [rsp + 0x4c], 0
js 0x201c4b8f
nop
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], 0
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0x78]
lea r9, [rsp + 0x70]
mov r14, rcx
call fcn.20078ff0
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xa0]
mov qword [r15], rdx
mov qword [r12], rdx
mov qword [r13], rcx
mov qword [rbp], rcx
mov qword [rbx], rax
mov qword [rdi], rax
mov rax, qword [rsp + 0x50]
mov qword [rax], r14
mov rax, qword [0x205ebdb0]
mov qword [rsi + 0x74], rax
mov qword [rsi + 0x68], 0
jmp 0x201c4b66
lea ecx, [rax - 0x77541054]
mov edx, 0xaaaaaaab
imul rdx, rcx
shr rdx, 0x23
shl edx, 2
lea ecx, [rdx + rdx*2]
neg ecx
add ecx, eax
add ecx, 0x88abefac
movsxd rdx, eax
lea rax, [0x2058d060]
lea r8, [0x20476080]
movzx ecx, byte [rcx + r8]
xor cl, 0x46
add byte [rdx + rax], cl
lea eax, [rdx + 1]
cmp edx, 0xb
jge 0x201c4cd7
cmp byte [rsp + 0x4c], 0
js 0x201c4c6c
nop
mov qword [rsp + 0x88], 0
test byte [rsp + 0x68], 1
jne 0x201c4b86
jmp 0x201c4b25
mov al, 0x8b
xchg byte [0x2058d06c], al
lea rax, [0x2058d050]
mov qword [rsp + 0x28], rax
lea r9, [0x2058d060]
mov edx, 0x7ffca01e
call fcn.201c2790
mov qword [0x205ec538], rax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], r14d
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], ecx
mov rcx, r15
mov edx, r13d
mov r8d, esi
mov r9, rbp
call rax
test byte [rsp + 0x68], 1
je 0x201c4b63
jmp 0x201c4b86
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x20
mov rsi, rcx
lea r14, section.__wibu05
mov eax, edx
mov ebp, edx
and ebp, 4
mov r10d, edx
and r10d, 0x80
mov r9d, edx
or r9d, 1
mov edi, r8d
and al, 0x40
cmove r9d, edx
mov edx, dword [0x205da478]
mov ecx, r9d
mov eax, r9d
or ecx, 2
and al, 8
cmove ecx, r9d
xor r8d, r8d
and ecx, 0xffffff3b
test edx, edx
je 0x204248b2
xor eax, eax
cmp edx, ecx
je 0x204248b2
mov edx, dword [r14 + rax*4 + 0x58747c]
inc rax
inc r8d
test edx, edx
jne 0x2042489c
movsxd rbx, r8d
cmp dword [r14 + rbx*4 + 0x587478], 0
je 0x204248e9
test r10d, r10d
je 0x20424906
test cl, 0xa
je 0x20424906
mov r8d, edi
lea rdx, [0x20497dd8]
mov rcx, rsi
call fcn.20407c18
test rax, rax
je 0x20424906
mov rcx, rax
call fcn.204024ac
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov rdx, qword [r14 + rbx*8 + 0x444d60]
mov r8d, edi
mov rcx, rsi
call fcn.20407c18
mov rbx, rax
test rax, rax
je 0x204248e9
test ebp, ebp
je 0x2042493c
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 2]
call fcn.2040757c
test eax, eax
je 0x2042493c
mov rcx, rbx
jmp 0x204248e4
mov rax, rbx
jmp 0x204248eb
jmp 0x20424834