Function at 0x2038b4e0
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
movaps xmmword [rsp + 0x110], xmm6
mov ebx, ecx
mov rax, qword [0x205a38a0]
xor rax, rsp
mov qword [rsp + 0x108], rax
not ecx
mov eax, ebx
xor eax, 3
mov dword [rsp + 0x5c], ecx
and ecx, 0xfffffffc
or ecx, eax
cmp ecx, 0xffffffff
mov dword [rsp + 0x58], ebx
je 0x2038c040
xorps xmm6, xmm6
movaps xmmword [rsp + 0xc0], xmm6
mov dword [rsp + 0xd0], 0
mov dword [rsp + 0x28], 0x47a04615
mov dword [rsp + 0x20], 0xbbd5873a
mov edi, 1
lea r8, [rsp + 0xc0]
mov ecx, 1
xor edx, edx
mov r9d, 0x6a52efa9
call fcn.2038d3e0
mov qword [rsp + 0x90], rax
test rax, rax
je 0x2038c0a3
mov eax, ebx
or eax, 0xfffffffe
xor eax, 1
mov esi, eax
or esi, ebx
not esi
or esi, eax
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xb0], 0
movaps xmm0, xmmword [0x20491280]
movaps xmmword [rsp + 0xe0], xmm0
movabs rax, 0x7177382156783b35
mov qword [rsp + 0xf0], rax
mov dword [rsp + 0xf8], 0x180f6c7b
mov dword [rsp + 0x28], 0x8fd6c148
mov dword [rsp + 0x20], 0x8ea28512
xor r15d, r15d
lea rdi, [rsp + 0xe0]
xor ecx, ecx
mov rdx, rdi
mov r8d, 7
mov r9d, 0xecf4786e
call fcn.2038d250
mov qword [rsp + 0xb0], 0
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x48], 0x93e815c8
mov dword [rsp + 0x40], 0xc1e93317
mov dword [rsp + 0x38], 0xb8f7b062
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov ecx, 1
xor edx, edx
mov r8, rdi
xor r9d, r9d
call fcn.2038d420
mov qword [rsp + 0x78], rax
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0xb0], 0
mov dword [rsp + 0x30], 0x4aacd161
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0xb8]
xor ecx, ecx
xor edx, edx
xor r9d, r9d
call fcn.2038d090
cmp eax, 1
je 0x2038b6b9
mov qword [rsp + 0xb8], 0
not esi
movabs rdi, 0xb7b5cf1f492004a0
movabs r14, 0xa42fcea623034c2
mov dword [rsp + 0x30], 0x85551a00
mov dword [rsp + 0x28], 0x759987c5
mov dword [rsp + 0x20], 0x7c347c69
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.2038d1c0
mov qword [rsp + 0xa0], rax
mov eax, ebx
xor eax, 0x100
mov ecx, dword [rsp + 0x5c]
and ecx, 0xfffffeff
or ecx, eax
not ecx
mov dword [rsp + 0x8c], ecx
lea rax, [rdi + r14]
mov qword [rsp + 0xa8], rax
xor eax, eax
mov qword [rsp + 0x98], rax
mov r11, qword [rsp + 0x90]
xor r12d, r12d
xor edi, edi
mov dword [rsp + 0x60], esi
jmp 0x2038b766
mov esi, dword [rsp + 0x60]
mov edx, dword [rsp + 0x64]
mov eax, dword [r11]
add r11, rax
test edx, edx
je 0x2038bea7
mov qword [rsp + 0x80], r12
mov dword [rsp + 0x74], edi
movsxd r14, dword [0x2049150c]
mov r12d, dword [0x20491654]
mov edx, dword [r11]
test esi, esi
mov dword [rsp + 0x64], edx
je 0x2038baa0
cmp word [r11 + 0x38], 0
je 0x2038bab0
add r14, qword [rsp + 0xa8]
movabs rax, 0xb7b5cf1f492004a0
sub r14, rax
lea rax, [0x2049150c]
add r14, rax
movabs rax, 0xa42fcea623034c2
sub r14, rax
nop word [rax + rax]
mov eax, dword [0x205b69f0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x2038b7f8
mov ebx, dword [0x205970e4]
mov eax, dword [0x205b69f0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x2038b820
mov eax, dword [0x205b69f0]
lea ecx, [rax - 1]
imul ecx, eax
mov dword [0x205b69f0], 1
test cl, 1
jne 0x2038b7d0
jmp 0x2038b7e1
mov eax, ebx
not eax
mov ecx, ebx
xor ecx, 1
and ecx, ebx
mov edx, eax
and edx, 1
or ecx, edx
mov r8d, ebx
and r8d, 0x7ffffffe
or r8d, edx
mov edx, eax
and edx, 0xfffffffe
or edx, r8d
not edx
lea ecx, [rcx + rdx*2]
mov dword [0x205970e4], ecx
mov edx, eax
and edx, ecx
not ecx
and ebx, ecx
or ebx, edx
nop dword [rax]
mov edx, dword [0x205b69f0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x2038b879
test r15b, r15b
je 0x2038b890
mov edx, dword [0x205b69f4]
cmp edx, 0x39
jge 0x2038b860
jmp 0x2038b874
mov edx, eax
not edx
xor eax, ecx
not ecx
and ecx, edx
or ecx, eax
not ecx
or ebx, ecx
not ebx
test ebx, ebx
jne 0x2038b8af
test r12d, r12d
jg 0x2038bbd2
mov dword [rsp + 0x70], 0
mov eax, dword [0x205b69f0]
nop dword [rax]
test r15b, r15b
jne 0x2038b8c0
xor r12d, r12d
cmp word [r11 + 0x3a], 0
je 0x2038bab3
cmp qword [r11 + 0x40], 0
je 0x2038bab3
xor r12d, r12d
mov edx, 0xb
lea r14, [0x204912b0]
mov qword [rsp + 0x68], r11
jmp 0x2038b90d
xor r15d, r15d
mov r11, qword [rsp + 0x68]
mov edx, dword [r14 + 0x14]
add r14, 0x14
test edx, edx
je 0x2038bab3
movzx eax, word [r11 + 0x38]
shr eax, 1
cmp edx, eax
jne 0x2038b8fd
mov rax, qword [r11 + 0x40]
mov rcx, qword [r14 + 4]
mov edx, edx
dec rdx
mov rsi, 0xffffffffffffffff
xor r15d, r15d
xor r10d, r10d
nop word cs:[rax + rax]
movzx r11d, byte [rcx + r10]
cmp r11d, 0x2a
je 0x2038b9dc
cmp r11d, 0x3f
je 0x2038b9dc
mov r13, r15
not r13
mov ebp, 0xfffffffe
not rbp
mov r8d, esi
and r8d, 0xfffffffe
mov r9, r15
and r9, rbp
or r9, r8
mov r8d, r15d
mov edi, 0xfffffffe
and r8d, edi
and r13, rbp
or r13, r8
and r13, rbp
mov r8, r9
not r8
xor r9, r13
not r13
and r13, r8
or r13, r9
not r13
or r13, r9
not r13
movzx r8d, byte [rax + r13]
mov r9d, r8d
xor r9b, 0xbf
mov ebp, r8d
and bpl, 0x3f
add bpl, bpl
add bpl, r9b
lea r9d, [r8 + 0x20]
cmp bpl, 0x1a
movzx r9d, r9b
cmovae r9d, r8d
xor r9b, 0x33
cmp r9b, r11b
jne 0x2038b8f5
cmp rdx, r10
je 0x2038ba00
add r15, 2
add rsi, 0xfffffffffffffffe
inc r10
jmp 0x2038b940
mov rax, qword [rsp + 0x78]
test rax, rax
mov r15d, 0
je 0x2038b8f8
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx + 0x50]
call qword [case.0x2010e313.0]
test eax, eax
je 0x2038b8f8
xor eax, eax
test ebx, ebx
setne al
mov ecx, dword [r14 + 0xc]
mov edx, ecx
not edx
mov r8d, ecx
xor r8d, r12d
mov r9d, edx
and edx, r12d
not r12d
and r9d, r12d
or r9d, r8d
not r9d
and r12d, ecx
or r12d, edx
or r12d, r9d
movzx ecx, word [0x204914ec]
lea edx, [rax - 1]
sub ecx, dword [rsp + 0x70]
neg eax
mov r8d, ecx
xor r8d, eax
xor ecx, edx
and r8d, eax
or r8d, ecx
cmp r8w, 0xffff
setne al
or al, byte [0x205b3830]
and al, 1
mov byte [0x205b3830], al
jmp 0x2038b8f8
mov edi, dword [rsp + 0x74]
jmp 0x2038bad4
xor r12d, r12d
mov eax, r12d
mov edi, dword [rsp + 0x74]
and eax, edi
mov ecx, r12d
xor ecx, edi
or edi, r12d
and edi, ecx
or edi, eax
mov ebx, dword [rsp + 0x58]
mov esi, dword [rsp + 0x60]
mov edx, dword [rsp + 0x64]
cmp qword [rsp + 0xcc], 0
mov r12, qword [rsp + 0x80]
je 0x2038b758
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x2038bb12
mov rcx, qword [r11 + 0x50]
cmp qword [rsp + 0xa0], rcx
jne 0x2038bb21
mov rax, qword [r11 + 0x58]
mov qword [rsp + 0x98], rax
cmp dword [rsp + 0x8c], 0
jne 0x2038bb36
jmp 0x2038b758
cmp rax, rcx
cmove r12, r11
cmp dword [rsp + 0x8c], 0
je 0x2038b758
mov rax, qword [rsp + 0xa0]
cmp rax, qword [r11 + 0x50]
jne 0x2038b758
mov dword [rsp + 0x30], 0x85551a00
mov dword [rsp + 0x28], 0x759987c5
mov dword [rsp + 0x20], 0x7c347c69
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
mov qword [rsp + 0x68], r11
call fcn.2038d1c0
mov r11, qword [rsp + 0x68]
cmp dword [r11 + 4], 0
je 0x2038b750
mov rcx, qword [rsp + 0xcc]
mov r8d, dword [rcx + 4]
test r8, r8
je 0x2038b750
mov ecx, r8d
not ecx
mov edx, r8d
xor edx, 3
mov r9d, ecx
and r9d, 0xfffffffc
or edx, r9d
not edx
or edx, r9d
xor ecx, edx
and ecx, edx
cmp r8d, 4
jae 0x2038bcaa
xor r8d, r8d
test rcx, rcx
jne 0x2038be38
jmp 0x2038b750
mov rsi, r11
mov r13d, 2
mov dword [rsp + 0x70], 0
nop word cs:[rax + rax]
lea eax, [r13 - 2]
mov ecx, dword [0x205b69f4]
movsxd rbp, eax
cmp ecx, 0x29
jg 0x2038bc2a
nop word cs:[rax + rax]
movzx eax, word [r14 + rbp]
mov ecx, dword [0x205b69f0]
mov edx, 0x2ec8bb73
sub edx, ecx
imul edx, ecx
test dl, 1
je 0x2038bc90
mov dword [rsp + 0x48], 0x93e815c8
mov dword [rsp + 0x40], 0xc1e93317
mov dword [rsp + 0x38], 0xb8f7b062
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x33
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.2038d420
mov qword [0x205b69e8], rax
lea rcx, [0x2038d050]
call fcn.20427ec0
movzx eax, word [r14 + rbp]
jmp 0x2038bc10
xor dword [rsp + 0x70], eax
cmp r13d, r12d
jge 0x2038bca2
add r13d, 2
jmp 0x2038bbf0
mov r11, rsi
jmp 0x2038b8b7
mov qword [rsp + 0x80], r12
lea rdx, [r11 + 0x100]
mov r9d, 0xfffffffe
lea r10, [r9 - 2]
mov r9, r8
xor r8, r10
not r10
xor r9, r10
and r9, r10
or r9, r8
not r9
lea r10, [r11 + 0x218]
mov r11, 0xffffffffffffffff
xor r8d, r8d
xor ebx, ebx
nop dword [rax + rax]
cmp qword [r10 - 0xf0], rax
setne r15b
sete sil
movzx ebp, byte [0x205b3830]
mov r12d, ebp
xor r12b, 1
mov r14d, ebp
xor r14b, sil
and bpl, r15b
xor r15b, r12b
not r15b
and r15b, r12b
or r15b, r14b
and r12b, sil
or r12b, bpl
mov r14d, edi
not r14d
mov esi, edi
xor esi, 0x2000
and r14d, 0xffffdfff
or r14d, esi
not r14d
or r14d, esi
test r12b, r12b
mov esi, edi
cmovne esi, r14d
test r15b, r15b
cmovne esi, r14d
test r12b, r12b
mov ebp, esi
cmovne ebp, edi
test r15b, r15b
cmove ebp, esi
test r12b, r12b
cmove edi, ebp
test r15b, r15b
mov esi, r11d
not esi
cmovne edi, ebp
and esi, 1
mov r15, r8
xor r15, 1
or r15, rsi
lea rsi, [r15 + r15*4]
shl rsi, 4
mov r15, qword [rdx + rsi + 0x28]
xor r15, rax
mov rsi, r11
and rsi, 0xfffffffffffffffd
mov r12d, r8d
and r12d, 2
or r12, rsi
and r12, r8
mov esi, r11d
and esi, 2
mov r13, r8
xor r13, 0xfffffffffffffffd
or r13, rsi
not r13
or r13, rsi
or r13, r12
lea rsi, [r13*4]
add rsi, r13
shl rsi, 4
mov rsi, qword [rdx + rsi + 0x28]
xor rsi, rax
mov r12, qword [r10]
xor r12, rax
or r12, rsi
or r12, r15
cmovne edi, r14d
mov esi, ebx
not esi
and esi, 4
mov r14, rbx
and r14, 0xfffffffffffffffb
or r14, rsi
and ebx, 4
lea rbx, [r14 + rbx*2]
cmp rbx, r9
je 0x2038be17
add r11, 0xfffffffffffffffc
add r10, 0x140
add r8, 4
jmp 0x2038bcf0
add r8, 4
mov ebx, dword [rsp + 0x58]
mov r12, qword [rsp + 0x80]
xor r15d, r15d
mov r11, qword [rsp + 0x68]
test rcx, rcx
je 0x2038b750
lea rdx, [r8 + r8*4]
shl rdx, 4
add rdx, r11
add rdx, 0x128
dec rcx
nop dword [rax]
mov r8d, edi
mov r9d, edi
not r9d
mov r10d, edi
xor r10d, 0x2000
mov r11d, r9d
and r11d, 0xffffdfff
or r11d, r10d
not r11d
and r9d, 0x2000
and edi, 0xffffdfff
or edi, r9d
or edi, r11d
cmp qword [rdx], rax
cmove edi, r8d
sub rcx, 1
jb 0x2038be99
add rdx, 0x50
jmp 0x2038be50
mov esi, dword [rsp + 0x60]
mov r11, qword [rsp + 0x68]
jmp 0x2038b754
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x2038c063
mov rsi, qword [rsp + 0x98]
test rsi, rsi
je 0x2038c063
test r12, r12
je 0x2038c063
mov rax, qword [r12 + 0x20]
mov rdx, qword [rsp + 0xcc]
cmp rax, qword [rdx + 0x20]
jae 0x2038c063
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x2038c063
call qword [case.0x2010e313.0]
mov ecx, edi
not ecx
mov edx, edi
xor edx, 2
mov r8d, ecx
and r8d, 0xfffffffd
or r8d, edx
and ecx, 2
mov edx, edi
and edx, 0xfffffffd
or edx, ecx
not edx
mov ecx, edx
xor ecx, r8d
or edx, r8d
not edx
or edx, ecx
cmp qword [rsp + 0xb8], rsi
cmove edx, edi
test eax, eax
cmovne edi, edx
cmp word [r12 + 0x38], 0
je 0x2038c063
cmp word [r12 + 0x3a], 0
je 0x2038c063
cmp qword [r12 + 0x40], 0
je 0x2038c063
xor esi, esi
lea rbx, [0x204912b0]
mov edx, 0xb
jmp 0x2038bf7f
mov edx, dword [rbx + 0x14]
add rbx, 0x14
test edx, edx
je 0x2038c044
movzx eax, word [r12 + 0x38]
shr eax, 1
cmp edx, eax
jne 0x2038bf70
mov rax, qword [r12 + 0x40]
mov rcx, qword [rbx + 4]
mov edx, edx
dec rdx
mov r8, 0xffffffffffffffff
xor r9d, r9d
xor r10d, r10d
nop word cs:[rax + rax]
movzx r11d, byte [rcx + r10]
cmp r11d, 0x2a
je 0x2038bffd
cmp r11d, 0x3f
je 0x2038bffd
mov r14d, r9d
xor r14d, r8d
mov r15d, 0xfffffffe
and r14d, r15d
xor r14d, r8d
and r14d, 0xfffffffe
movzx r14d, byte [rax + r14]
lea ebp, [r14 - 0x41]
lea r15d, [r14 + 0x20]
cmp bpl, 0x1a
movzx ebp, r15b
cmovae ebp, r14d
xor bpl, 0x33
cmp bpl, r11b
jne 0x2038bf70
cmp rdx, r10
je 0x2038c010
add r9, 2
add r8, 0xfffffffffffffffe
inc r10
jmp 0x2038bfb0
mov rcx, qword [r12 + 0x50]
mov rax, qword [rsp + 0x78]
call qword [case.0x2010e313.0]
test eax, eax
je 0x2038bf70
mov eax, dword [rbx + 0xc]
mov ecx, eax
not ecx
xor eax, esi
not esi
and esi, ecx
or esi, eax
not esi
or esi, eax
jmp 0x2038bf70
xor edi, edi
jmp 0x2038c0a3
test esi, esi
mov ebx, dword [rsp + 0x58]
je 0x2038c063
or edi, esi
mov eax, edi
not eax
xor edi, 0x8000
and eax, 0xffff7fff
or eax, edi
not eax
or edi, eax
mov qword [rsp + 0xb8], 0
mov dword [rsp + 0x38], 0xde3e281d
mov dword [rsp + 0x30], 0xb3e2826c
mov dword [rsp + 0x28], 0x561f0dbe
mov dword [rsp + 0x20], 0
xor ecx, ecx
xor edx, edx
mov r8, qword [rsp + 0x90]
xor r9d, r9d
call fcn.2038d160
mov edx, dword [rsp + 0x5c]
mov eax, edx
and eax, 0xffffffe3
mov ecx, ebx
and ecx, 0x1c
or ecx, eax
mov eax, ecx
xor eax, edx
test eax, ecx
je 0x2038c280
mov dword [rsp + 0x48], 0x93e815c8
mov dword [rsp + 0x40], 0xc1e93317
mov dword [rsp + 0x38], 0xb8f7b062
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.2038d420
test rax, rax
je 0x2038c27c
mov rbx, rax
mov r14d, dword [rsp + 0x58]
mov eax, r14d
xor eax, 0xfffffffb
mov esi, dword [rsp + 0x5c]
mov ecx, esi
and ecx, 0xfffffff7
mov edx, r14d
and edx, 8
or edx, ecx
mov ebp, edx
not ebp
xor edx, r14d
and ebp, esi
or ebp, edx
not ebp
and esi, 0xffffffef
and r14d, 0x10
mov dword [rsp + 0xc0], 0
mov dword [rsp + 0xb8], 0
mov qword [rsp + 0xe0], 0
mov dword [rsp + 0xb0], 1
test al, 4
je 0x2038c1ab
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0xb8]
mov rcx, 0xffffffffffffffff
mov edx, 7
mov r9d, 4
mov rax, rbx
call qword [case.0x2010e313.0]
test eax, eax
je 0x2038c1ab
mov dword [rsp + 0xb8], 0
or esi, r14d
test ebp, ebp
je 0x2038c1f2
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0xe0]
mov rcx, 0xffffffffffffffff
mov edx, 0x1e
mov r9d, 8
mov rax, rbx
call qword [case.0x2010e313.0]
test eax, eax
je 0x2038c1f2
mov qword [rsp + 0xe0], 0
test dword [rsp + 0x58], esi
je 0x2038c237
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0xb0]
mov rcx, 0xffffffffffffffff
mov edx, 0x1f
mov r9d, 4
mov rax, rbx
call qword [case.0x2010e313.0]
test eax, eax
je 0x2038c237
mov dword [rsp + 0xb0], 1
mov eax, edi
or eax, 0x100
cmp dword [rsp + 0xb8], 0
cmove eax, edi
mov ecx, eax
xor ecx, 0xfffffdff
and ecx, eax
mov edx, eax
xor edx, 0x200
or edx, ecx
cmp qword [rsp + 0xe0], 0
cmove edx, eax
mov edi, edx
or edi, 0x400
cmp dword [rsp + 0xb0], 0
cmovne edi, edx
mov ebx, dword [rsp + 0x58]
mov edx, dword [rsp + 0x5c]
mov eax, edx
and eax, 0x20
mov ecx, ebx
and ecx, 0xffffffdf
or ecx, eax
mov eax, edx
and eax, 0xffffffdf
or eax, ecx
cmp eax, 0xffffffff
je 0x2038c2e1
mov dword [rsp + 0x28], 0x47a04615
mov dword [rsp + 0x20], 0xbbd5873a
xor ecx, ecx
mov edx, 1
xor r8d, r8d
mov r9d, 0x6a52efa9
call fcn.2038d3e0
test rax, rax
je 0x2038c2e1
cmp byte [rax + 2], 0
je 0x2038c2e1
mov eax, edi
not eax
xor edi, 0x800
and eax, 0xfffff7ff
or eax, edi
not eax
or edi, eax
test bl, bl
jns 0x2038c324
mov dword [rsp + 0x28], 0x47a04615
mov dword [rsp + 0x20], 0xbbd5873a
xor ecx, ecx
mov edx, 1
xor r8d, r8d
mov r9d, 0x6a52efa9
call fcn.2038d3e0
test rax, rax
je 0x2038c324
mov rax, qword [rax + 0x20]
test rax, rax
je 0x2038c324
cmp dword [rax + 0xc], 0
je 0x2038c324
or edi, 0x1000
test ebx, 0x200
je 0x2038c34e
mov ecx, 0x3f509d39
mov edx, 0x8bd5f789
mov r8d, 0xaf80bb8a
call fcn.2038d240
mov ecx, edi
or ecx, 0x40000
test al, al
cmovne edi, ecx
cmp byte [0x205b3f90], 0
jne 0x2038c36b
mov eax, ebx
xor eax, 0xfffffbff
and eax, ebx
je 0x2038c36b
mov ecx, ebx
call fcn.2038c5f0
or edi, eax
mov eax, dword [rsp + 0x5c]
or eax, 0xffffefff
cmp eax, 0xffffffff
je 0x2038c3d5
mov ecx, 0x3f509d39
mov edx, 0x8bd5f789
mov r8d, 0xaf80bb8a
call fcn.2038d240
mov ecx, edi
not ecx
mov edx, ecx
and edx, 0xffdfffff
mov r8d, edi
and r8d, 0x200000
or r8d, edx
xor r8d, 0x200000
xor edx, 0xffdfffff
or edx, r8d
not edx
and ecx, 0x200000
mov r8d, edi
and r8d, 0xffdfffff
or r8d, ecx
or r8d, edx
test al, al
cmovne edi, r8d
mov eax, ebx
xor eax, 0x2000
mov ecx, dword [rsp + 0x5c]
and ecx, 0xffffdfff
or ecx, eax
cmp ecx, 0xffffffff
je 0x2038c42e
mov dword [rsp + 0x28], 0x47a04615
mov dword [rsp + 0x20], 0xbbd5873a
xor ecx, ecx
xor edx, edx
xor r8d, r8d
mov r9d, 0x6a52efa9
call fcn.2038d3e0
test rax, rax
je 0x2038c42e
cmp qword [rax + 0x16a0], 0
jne 0x2038c428
cmp qword [rax + 0x16a8], 0
je 0x2038c42e
or edi, 0x400000
mov eax, ebx
xor eax, 0x10000
mov ecx, dword [rsp + 0x5c]
and ecx, 0xfffeffff
or ecx, eax
cmp ecx, 0xffffffff
je 0x2038c472
call fcn.2038ccc0
mov ecx, edi
and ecx, 8
mov edx, edi
xor edx, 8
xor edx, ecx
not ecx
mov r8d, edi
xor r8d, 0xfffffff7
and r8d, ecx
or r8d, edx
not r8d
or r8d, edx
test al, al
cmovne edi, r8d
test ebx, 0x4000
je 0x2038c530
mov dword [rsp + 0x30], 0x85551a00
mov dword [rsp + 0x28], 0x759987c5
mov dword [rsp + 0x20], 0x7c347c69
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.2038d1c0
test rax, rax
je 0x2038c52c
mov rbx, rax
mov dword [rsp + 0x38], 0xde3e281d
mov dword [rsp + 0x30], 0xb3e2826c
mov dword [rsp + 0x28], 0x561f0dbe
mov dword [rsp + 0x20], 0
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.2038d160
test eax, eax
je 0x2038c52c
mov ecx, eax
not ecx
movzx edx, cl
and eax, 0xffffff00
or eax, edx
and ecx, 0xffffff00
or ecx, eax
not ecx
cmp ecx, 0xa
ja 0x2038c52c
lea rax, [rbx + 0x14]
add rbx, 0x70
cmp ecx, 6
cmovb rbx, rax
mov eax, dword [rbx]
shr eax, 7
mov ecx, eax
not ecx
xor eax, 0x800000
and ecx, 0xff7fffff
or ecx, eax
not ecx
or edi, ecx
mov ebx, dword [rsp + 0x58]
mov edx, dword [rsp + 0x5c]
mov eax, edx
and eax, 0xffff7fff
mov ecx, ebx
and ecx, 0x8000
or ecx, eax
xor ebx, edx
and ebx, ecx
xor ebx, edx
test ebx, ecx
je 0x2038c5c0
mov dword [rsp + 0x28], 0x47a04615
mov dword [rsp + 0x20], 0xbbd5873a
mov ecx, 1
mov edx, 1
xor r8d, r8d
mov r9d, 0x6a52efa9
call fcn.2038d3e0
test rax, rax
je 0x2038c5c0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov ecx, 7
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [case.0x2010e313.0]
xor eax, 0x756e6971
cmp eax, 0xb56e6953
je 0x2038c5c0
cmp eax, 0xb56e6973
je 0x2038c5c0
cmp eax, 0xb56e6a25
je 0x2038c5c0
or edi, 0x800000
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.204278f0
mov eax, edi
movaps xmm6, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret