Function at 0x1400217f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor r13d, r13d
mov r12, rcx
cmp rcx, r13
je 0x1400218e6
mov rdi, qword [rcx + 0x28]
cmp rdi, r13
je 0x1400218e6
cmp qword [rcx + 0x10], r13
je 0x1400218e6
cmp qword [rcx], r13
jne 0x140021839
cmp dword [rcx + 8], r13d
jne 0x1400218e6
cmp dword [rdi], 0xb
jne 0x140021844
mov dword [rdi], InitCommonControls
mov r9d, dword [rcx + 0x18]
mov r14d, dword [rcx + 8]
mov r10, qword [rcx + 0x10]
mov r15, qword [rcx]
mov ebp, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov dword [rsp + 0x38], r14d
mov r8d, r9d
mov dword [rsp + 0xa8], r9d
mov dword [rsp + 0x90], r13d
mov ebx, 1
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xa0], r9d
lea r11, [0x140027eb8]
lea rdx, [0x140028548]
mov ecx, dword [rdi]
cmp ecx, 0xe
jg 0x14002208e
je 0x140021e93
cmp ecx, 7
jg 0x140021e18
je 0x140021c1b
cmp ecx, r13d
je 0x140021c9d
sub ecx, ebx
je 0x140021920
sub ecx, ebx
je 0x1400219a5
sub ecx, ebx
je 0x140021a1d
sub ecx, ebx
je 0x140021a74
sub ecx, ebx
je 0x140021a8e
cmp ecx, ebx
je 0x140021b89
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x140021903
cmp bpl, 8
mov dword [rdi + 0x10], ebp
jne 0x140021dbd
test ebp, 0xe000
jne 0x140021dbd
mov rcx, qword [rdi + 0x20]
cmp rcx, r13
je 0x140021950
mov eax, ebp
shr eax, 8
and eax, ebx
mov dword [rcx], eax
bt dword [rdi + 0x10], 9
jae 0x14002197a
mov ecx, dword [rdi + 0x18]
mov byte [rsp + 0x30], bpl
shr ebp, 8
lea rdx, [rsp + 0x30]
mov r8d, 2
mov byte [rsp + 0x31], bpl
call fcn.140023cec
mov dword [rdi + 0x18], eax
mov ebp, r13d
mov esi, r13d
mov dword [rdi], 2
jmp 0x1400219a5
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x140021988
mov rax, qword [rdi + 0x20]
cmp rax, r13
je 0x1400219b6
mov dword [rax + 4], ebp
bt dword [rdi + 0x10], 9
jae 0x1400219f2
mov ecx, dword [rdi + 0x18]
mov eax, ebp
mov byte [rsp + 0x30], bpl
shr eax, 8
lea rdx, [rsp + 0x30]
mov r8d, 4
mov byte [rsp + 0x31], al
mov eax, ebp
shr ebp, 0x18
shr eax, 0x10
mov byte [rsp + 0x33], bpl
mov byte [rsp + 0x32], al
call fcn.140023cec
mov dword [rdi + 0x18], eax
mov ebp, r13d
mov esi, r13d
mov dword [rdi], 3
jmp 0x140021a1d
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x140021a00
mov rcx, qword [rdi + 0x20]
cmp rcx, r13
je 0x140021a3e
movzx eax, bpl
mov dword [rcx + 8], eax
mov rax, qword [rdi + 0x20]
mov ecx, ebp
shr ecx, 8
mov dword [rax + 0xc], ecx
bt dword [rdi + 0x10], 9
jae 0x140021a68
mov ecx, dword [rdi + 0x18]
mov byte [rsp + 0x30], bpl
shr ebp, 8
lea rdx, [rsp + 0x30]
mov r8d, 2
mov byte [rsp + 0x31], bpl
call fcn.140023cec
mov dword [rdi + 0x18], eax
mov ebp, r13d
mov esi, r13d
mov dword [rdi], 4
bt dword [rdi + 0x10], 0xa
jb 0x140021af7
mov rax, qword [rdi + 0x20]
cmp rax, r13
je 0x140021a88
mov qword [rax + 0x10], r13
mov dword [rdi], 5
bt dword [rdi + 0x10], 0xa
jae 0x140021b7f
mov ebx, dword [rdi + 0x48]
cmp ebx, r14d
cmova ebx, r14d
cmp ebx, r13d
je 0x140021b75
mov rax, qword [rdi + 0x20]
cmp rax, r13
je 0x140021b52
mov r9, qword [rax + 0x10]
cmp r9, r13
je 0x140021b52
mov edx, dword [rax + 0x18]
mov ecx, dword [rax + 0x1c]
sub edx, dword [rdi + 0x48]
lea eax, [rbx + rdx]
cmp eax, ecx
jbe 0x140021b40
sub ecx, edx
jmp 0x140021b42
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x140021ada
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], ebp
cmp rax, r13
je 0x140021b0b
mov dword [rax + 0x18], ebp
bt dword [rdi + 0x10], 9
jae 0x140021b35
mov ecx, dword [rdi + 0x18]
mov byte [rsp + 0x30], bpl
shr ebp, 8
lea rdx, [rsp + 0x30]
mov r8d, 2
mov byte [rsp + 0x31], bpl
call fcn.140023cec
mov dword [rdi + 0x18], eax
mov ebp, r13d
mov esi, r13d
jmp 0x140021a88
mov ecx, ebx
mov r8d, ecx
mov ecx, edx
mov rdx, r15
add rcx, r9
call sub.msvcrt.dll_memcpy
bt dword [rdi + 0x10], 9
jae 0x140021b6a
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.140023cec
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r14d, ebx
add r15, rax
sub dword [rdi + 0x48], ebx
cmp dword [rdi + 0x48], r13d
jne 0x140022b2f
mov dword [rdi + 0x48], r13d
mov dword [rdi], 6
bt dword [rdi + 0x10], 0xb
jae 0x140021c04
cmp r14d, r13d
je 0x140022b2f
mov ebx, r13d
mov r8, r15
mov rax, qword [rdi + 0x20]
movzx r13d, byte [r8]
add ebx, 1
add r8, 1
test rax, rax
je 0x140021bcc
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x140021bcc
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x140021bcc
mov byte [rcx + rdx], r13b
add dword [rdi + 0x48], 1
test r13d, r13d
je 0x140021bd6
cmp ebx, r14d
jb 0x140021b9f
bt dword [rdi + 0x10], 9
jae 0x140021bee
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.140023cec
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r14d, ebx
add r15, rax
test r13d, r13d
jne 0x140022b2f
xor r13d, r13d
jmp 0x140021c11
mov rax, qword [rdi + 0x20]
cmp rax, r13
je 0x140021c11
mov qword [rax + 0x20], r13
mov dword [rdi + 0x48], r13d
mov dword [rdi], 7
bt dword [rdi + 0x10], 0xc
jae 0x140021dcd
cmp r14d, r13d
je 0x140022b2f
mov ebx, r13d
mov r8, r15
mov rax, qword [rdi + 0x20]
movzx r13d, byte [r8]
add ebx, 1
add r8, 1
test rax, rax
je 0x140021c62
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140021c62
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x140021c62
mov byte [rcx + rdx], r13b
add dword [rdi + 0x48], 1
test r13d, r13d
je 0x140021c6c
cmp ebx, r14d
jb 0x140021c35
bt dword [rdi + 0x10], 9
jae 0x140021c84
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.140023cec
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r14d, ebx
add r15, rax
test r13d, r13d
jne 0x140022b2f
xor r13d, r13d
jmp 0x140021dda
cmp dword [rdi + 8], r13d
jne 0x140021ccb
mov dword [rdi], InitCommonControls
jmp 0x140021891
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x140021cae
test byte [rdi + 8], 2
je 0x140021d23
cmp ebp, 0x8b1f
jne 0x140021d23
lea rdx, [rsp + 0x30]
mov r8d, 2
xor ecx, ecx
mov dword [rdi + 0x18], r13d
mov byte [rsp + 0x30], 0x1f
mov byte [rsp + 0x31], 0x8b
call fcn.140023cec
mov ebp, r13d
mov esi, r13d
mov dword [rdi + 0x18], eax
mov dword [rdi], ebx
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
jmp 0x140021883
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x10], r13d
cmp rax, r13
je 0x140021d34
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 8], bl
je 0x140021dbd
movzx ecx, bpl
mov eax, ebp
shr eax, 8
shl ecx, 8
add ecx, eax
mov eax, 0x8421085
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
cmp ecx, eax
jne 0x140021db6
mov eax, ebp
and al, 0xf
cmp al, 8
je 0x140021d7c
mov qword [r12 + 0x20], r11
mov dword [rdi], 0x1b
jmp 0x14002188a
shr ebp, 4
add esi, 0xfffffffc
mov ecx, ebp
and ecx, 0xf
add ecx, 8
cmp ecx, dword [rdi + 0x28]
ja 0x140021d6c
shr ebp, 8
mov eax, ebx
mov dword [rdi + 0x18], ebx
not ebp
shl eax, cl
mov esi, r13d
and ebp, 2
mov dword [rdi + 0x14], eax
mov dword [r12 + 0x4c], ebx
or ebp, 9
mov dword [rdi], ebp
mov ebp, r13d
jmp 0x14002188a
lea rdx, [0x140028548]
mov qword [r12 + 0x20], r11
mov dword [rdi], 0x1b
jmp 0x140021891
mov rax, qword [rdi + 0x20]
cmp rax, r13
je 0x140021dda
mov qword [rax + 0x30], r13
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi], 8
mov ebx, 1
lea r11, [0x140027eb8]
lea rdx, [0x140028548]
bt dword [rdi + 0x10], 9
jae 0x140022051
jmp 0x14002203a
sub ecx, 8
je 0x140021e08
sub ecx, ebx
je 0x140021f12
sub ecx, ebx
je 0x140021f4e
sub ecx, ebx
je 0x140021f66
sub ecx, ebx
je 0x140021f66
cmp ecx, ebx
jne 0x1400218e6
mov ecx, esi
and ecx, 7
shr ebp, cl
sub esi, ecx
jmp 0x140021e6d
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x140021e50
mov eax, ebp
movzx ecx, bp
not eax
shr eax, 0x10
cmp ecx, eax
jne 0x140021dbd
mov dword [rdi + 0x48], ecx
mov ebp, r13d
mov esi, r13d
mov dword [rdi], InitCommonControls
mov r13d, dword [rdi + 0x48]
test r13d, r13d
je 0x140022080
cmp r13d, r14d
cmova r13d, r14d
cmp r13d, r9d
cmova r13d, r9d
test r13d, r13d
je 0x140022b2f
mov r8d, r13d
mov rdx, r15
mov rcx, r10
mov ebx, r13d
call sub.msvcrt.dll_memcpy
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
sub dword [rdi + 0x48], r13d
mov r8d, dword [rsp + 0xa8]
sub r9d, r13d
add r10, rbx
sub r14d, r13d
add r15, rbx
xor r13d, r13d
jmp 0x140021871
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x140021ef5
mov ecx, ebp
mov eax, ebp
mov esi, r13d
shl eax, 0x10
and ecx, 0xff00
add ecx, eax
mov eax, ebp
shr ebp, 0x18
shr eax, 8
shl ecx, 8
and eax, 0xff00
add eax, ecx
add eax, ebp
mov ebp, r13d
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov dword [rdi], 0xa
cmp dword [rdi + 0xc], r13d
je 0x140022b04
mov dword [rdi + 0x18], ebx
mov dword [r12 + 0x4c], ebx
mov dword [rdi], 0xb
cmp dword [rdi + 4], r13d
je 0x140021f9d
mov ecx, esi
mov dword [rdi], 0x18
and ecx, 7
shr ebp, cl
sub esi, ecx
jmp 0x140021891
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 3
jb 0x140021f80
mov eax, ebp
shr ebp, 1
add esi, 0xffffffff
and eax, ebx
mov dword [rdi + 4], eax
mov eax, ebp
and eax, 3
cmp eax, r13d
je 0x14002200c
sub eax, ebx
je 0x140021fd9
sub eax, ebx
je 0x140021fd1
cmp eax, ebx
jne 0x140022012
mov qword [r12 + 0x20], r11
mov dword [rdi], 0x1b
jmp 0x140022012
mov dword [rdi], InitCommonControls
jmp 0x140022012
mov rcx, rdi
call fcn.1400215ac
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi], 0x12
lea r11, [0x140027eb8]
lea rdx, [0x140028548]
jmp 0x140022012
mov dword [rdi], InitCommonControls
shr ebp, 2
add esi, 0xfffffffe
jmp 0x140021891
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x14002201d
movzx eax, word [rdi + 0x18]
cmp ebp, eax
jne 0x140021dbd
mov ebp, r13d
mov esi, r13d
mov rcx, qword [rdi + 0x20]
cmp rcx, r13
je 0x14002206c
mov eax, dword [rdi + 0x10]
sar eax, 9
and eax, ebx
mov dword [rcx + 0x3c], eax
mov rax, qword [rdi + 0x20]
mov dword [rax + 0x40], ebx
mov dword [rdi + 0x18], r13d
mov dword [r12 + 0x4c], r13d
mov dword [rdi], 0xb
jmp 0x140021891
mov dword [rdi], 0xb
xor r13d, r13d
jmp 0x140021891
cmp ecx, 0x16
jg 0x14002298d
je 0x140022901
sub ecx, 0xf
je 0x1400220f4
sub ecx, ebx
je 0x140022191
sub ecx, ebx
je 0x1400224bd
sub ecx, ebx
je 0x140022562
sub ecx, ebx
je 0x140022716
sub ecx, ebx
je 0x14002275b
cmp ecx, ebx
jne 0x1400218e6
jmp 0x1400228aa
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0xe
jb 0x1400220d7
mov ecx, ebp
shr ebp, 5
add esi, 0xfffffff2
mov edx, ebp
shr ebp, 5
and ecx, 0x1f
mov eax, ebp
and edx, 0x1f
add ecx, 0x101
and eax, 0xf
add edx, ebx
shr ebp, 4
add eax, 4
cmp ecx, 0x11e
mov dword [rdi + 0x74], ecx
mov dword [rdi + 0x70], eax
mov dword [rdi + 0x78], edx
ja 0x140021d6c
cmp edx, 0x1e
ja 0x140021d6c
mov dword [rdi + 0x7c], r13d
mov dword [rdi], InitCommonControls
lea rdx, [0x140028548]
jmp 0x140022191
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 3
jb 0x140022150
mov eax, dword [rdi + 0x7c]
mov cl, bpl
shr ebp, 3
movzx eax, word [rdx + rax*2]
and cx, 7
mov word [rdi + rax*2 + 0x88], cx
add dword [rdi + 0x7c], ebx
add esi, 0xfffffffd
mov eax, dword [rdi + 0x70]
cmp dword [rdi + 0x7c], eax
jb 0x14002216d
jmp 0x1400221ae
mov eax, dword [rdi + 0x7c]
movzx eax, word [rdx + rax*2]
mov word [rdi + rax*2 + 0x88], r13w
add dword [rdi + 0x7c], ebx
cmp dword [rdi + 0x7c], 0x13
jb 0x14002219b
lea rcx, [rdi + 0x68]
lea rax, [rdi + 0x548]
lea r9, [rdi + 0x80]
mov qword [r9], rax
mov qword [rdi + 0x58], rax
lea rax, [rdi + 0x308]
mov qword [rsp + 0x28], rax
mov dword [rcx], 7
mov qword [rsp + 0x20], rcx
xor ecx, ecx
lea rdx, [rdi + 0x88]
lea r8d, [rcx + 0x13]
call fcn.1400247a0
cmp eax, r13d
mov dword [rsp + 0x90], eax
je 0x14002222e
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
lea r11, [0x140027eb8]
mov qword [r12 + 0x20], r11
mov dword [rdi], 0x1b
jmp 0x14002188a
mov r10, qword [rsp + 0x40]
mov dword [rdi + 0x7c], r13d
mov dword [rdi], reloc.COMCTL32.dll_InitCommonControls
lea r11, [0x140027eb8]
jmp 0x1400224bd
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
mov ecx, dword [rdi + 0x68]
mov eax, ebx
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
mov dword [rsp + 0x34], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x140022249
mov ecx, eax
shr ecx, 0x10
cmp cx, 0x10
jae 0x1400222e9
shr eax, 8
movzx ecx, al
cmp esi, ecx
jae 0x1400222c8
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
add r14d, 0xffffffff
add r15, rbx
add ebp, eax
movzx eax, byte [rsp + 0x35]
cmp esi, eax
jb 0x1400222a2
movzx ecx, byte [rsp + 0x35]
movzx eax, word [rsp + 0x36]
shr ebp, cl
sub esi, ecx
mov ecx, dword [rdi + 0x7c]
mov word [rdi + rcx*2 + 0x88], ax
add dword [rdi + 0x7c], ebx
jmp 0x1400224bd
cmp word [rsp + 0x36], 0x10
jne 0x14002234f
movzx edx, byte [rsp + 0x35]
lea r8d, [rdx + 2]
jmp 0x140022319
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r8d
jb 0x1400222fc
mov eax, dword [rdi + 0x7c]
mov ecx, edx
sub esi, edx
shr ebp, cl
cmp eax, r13d
je 0x1400224d1
mov edx, ebp
add eax, 0xffffffff
shr ebp, 2
movzx r9d, word [rdi + rax*2 + 0x88]
and edx, 3
add edx, 3
add esi, 0xfffffffe
jmp 0x1400223df
cmp word [rsp + 0x36], 0x11
movzx r8d, byte [rsp + 0x35]
jne 0x14002239b
lea edx, [r8 + 3]
jmp 0x140022380
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, edx
jb 0x140022363
mov ecx, r8d
mov eax, 0xfffffffd
shr ebp, cl
mov edx, ebp
and edx, 7
add edx, 3
shr ebp, 3
jmp 0x1400223d7
lea edx, [r8 + 7]
jmp 0x1400223be
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, edx
jb 0x1400223a1
mov ecx, r8d
mov eax, 0xfffffff9
shr ebp, cl
mov edx, ebp
and edx, 0x7f
add edx, 0xb
shr ebp, 7
sub eax, r8d
mov r9d, r13d
add esi, eax
mov eax, dword [rdi + 0x7c]
lea ecx, [rdx + rax]
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp ecx, eax
jbe 0x1400224b8
mov qword [r12 + 0x20], r11
mov dword [rdi], 0x1b
cmp dword [rdi], 0x1b
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
lea rdx, [0x140028548]
je 0x140021891
mov r8d, dword [rdi + 0x74]
lea rax, [rdi + 0x548]
lea r13, [rdi + 0x308]
mov qword [rdi + 0x80], rax
mov qword [rdi + 0x58], rax
lea rax, [rdi + 0x68]
lea rdx, [rdi + 0x88]
lea r9, [rdi + 0x80]
mov ecx, 1
mov qword [rsp + 0x28], r13
mov dword [rax], 9
mov qword [rsp + 0x20], rax
call fcn.1400247a0
test eax, eax
mov dword [rsp + 0x90], eax
je 0x1400224f1
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
xor r13d, r13d
lea r11, [0x140027eb8]
mov ebx, 1
mov qword [r12 + 0x20], r11
mov dword [rdi], 0x1b
jmp 0x14002188a
mov eax, dword [rdi + 0x7c]
add edx, 0xffffffff
mov word [rdi + rax*2 + 0x88], r9w
add dword [rdi + 0x7c], ebx
cmp edx, r13d
jne 0x1400224a6
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x1400223fe
jmp 0x140022266
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov qword [r12 + 0x20], r11
mov dword [rdi], 0x1b
jmp 0x14002188a
mov rax, qword [rdi + 0x80]
mov r8d, dword [rdi + 0x78]
lea rcx, [rdi + 0x6c]
mov qword [rdi + 0x60], rax
mov eax, dword [rdi + 0x74]
mov dword [rcx], 6
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rcx
lea r9, [rdi + 0x80]
lea rdx, [rdi + rax*2 + 0x88]
mov ecx, 2
call fcn.1400247a0
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
xor r13d, r13d
mov dword [rsp + 0x90], eax
cmp eax, r13d
jne 0x14002248a
mov dword [rdi], 0x12
lea ebx, [r13 + 1]
cmp r14d, 6
jb 0x1400225bb
cmp r9d, 0x102
jb 0x1400225bb
mov qword [r12 + 0x10], r10
mov dword [r12 + 0x18], r9d
mov qword [r12], r15
mov dword [r12 + 8], r14d
mov edx, r8d
mov rcx, r12
mov dword [rdi + 0x40], ebp
mov dword [rdi + 0x44], esi
call fcn.140024324
mov r10, qword [r12 + 0x10]
mov r9d, dword [r12 + 0x18]
mov r15, qword [r12]
mov r14d, dword [r12 + 8]
mov ebp, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov r8d, dword [rsp + 0xa8]
jmp 0x140021876
mov ecx, dword [rdi + 0x68]
mov r11, qword [rdi + 0x58]
mov eax, ebx
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x140022609
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
mov ecx, dword [rdi + 0x68]
add r15, rbx
add ebp, eax
mov eax, ebx
add esi, 8
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x1400225d5
cmp al, r13b
je 0x1400226cf
test al, 0xf0
jne 0x1400226cf
mov r10d, eax
mov cl, al
mov r9d, ebx
shr r10d, 8
mov edx, eax
mov dword [rsp + 0x34], eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
sub r9d, ebx
and r9d, ebp
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
jmp 0x1400226c1
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
movzx r9d, byte [rsp + 0x35]
mov ecx, esi
shl eax, cl
mov r8d, ebx
add r14d, 0xffffffff
add ebp, eax
mov al, dl
add r15, rbx
lea ecx, [r9 + rax]
movzx eax, word [rsp + 0x36]
add esi, 8
shl r8d, cl
mov ecx, r9d
sub r8d, ebx
and r8d, ebp
shr r8d, cl
add r8d, eax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x14002266a
movzx ecx, byte [rsp + 0x35]
shr ebp, cl
sub esi, ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr ebp, cl
sub esi, ecx
mov ecx, eax
shr ecx, 0x10
cmp al, r13b
mov dword [rdi + 0x48], ecx
jne 0x1400226f3
mov dword [rdi], 0x17
jmp 0x140021d09
test al, 0x20
je 0x140022702
mov dword [rdi], 0xb
jmp 0x140021d09
test al, 0x40
jne 0x140022202
and eax, 0xf
mov dword [rdi], 0x13
mov dword [rdi + 0x50], eax
mov edx, dword [rdi + 0x50]
cmp edx, r13d
je 0x140022755
cmp esi, edx
jae 0x140022744
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
add r14d, 0xffffffff
add r15, rbx
add ebp, eax
cmp esi, dword [rdi + 0x50]
jb 0x140022722
mov ecx, edx
mov eax, ebx
shl eax, cl
sub eax, ebx
and eax, ebp
shr ebp, cl
add dword [rdi + 0x48], eax
sub esi, edx
mov dword [rdi], 0x14
mov ecx, dword [rdi + 0x6c]
mov r11, qword [rdi + 0x60]
mov eax, ebx
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x1400227a9
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
mov ecx, dword [rdi + 0x6c]
add r15, rbx
add ebp, eax
mov eax, ebx
add esi, 8
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x140022775
test al, 0xf0
jne 0x140022866
mov r10d, eax
mov cl, al
mov r9d, ebx
shr r10d, 8
mov edx, eax
mov dword [rsp + 0x34], eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
sub r9d, ebx
and r9d, ebp
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
jmp 0x140022858
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
movzx r9d, byte [rsp + 0x35]
mov ecx, esi
shl eax, cl
mov r8d, ebx
add r14d, 0xffffffff
add ebp, eax
mov al, dl
add r15, rbx
lea ecx, [r9 + rax]
movzx eax, word [rsp + 0x36]
add esi, 8
shl r8d, cl
mov ecx, r9d
sub r8d, ebx
and r8d, ebp
shr r8d, cl
add r8d, eax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x140022801
movzx ecx, byte [rsp + 0x35]
shr ebp, cl
sub esi, ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr ebp, cl
sub esi, ecx
test al, 0x40
jne 0x140022202
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov ecx, eax
mov dword [rdi], 0x15
lea r11, [0x140027eb8]
shr ecx, 0x10
and eax, 0xf
mov dword [rdi + 0x50], eax
mov dword [rdi + 0x4c], ecx
mov edx, dword [rdi + 0x50]
cmp edx, r13d
je 0x1400228e9
cmp esi, edx
jae 0x1400228d8
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
add r14d, 0xffffffff
add r15, rbx
add ebp, eax
cmp esi, dword [rdi + 0x50]
jb 0x1400228b6
mov ecx, edx
mov eax, ebx
shl eax, cl
sub eax, ebx
and eax, ebp
shr ebp, cl
add dword [rdi + 0x4c], eax
sub esi, edx
mov eax, dword [rdi + 0x30]
sub eax, r9d
add eax, r8d
cmp dword [rdi + 0x4c], eax
ja 0x140021d6c
mov dword [rdi], 0x16
cmp r9d, r13d
je 0x140022b2f
mov ecx, dword [rdi + 0x4c]
mov eax, r8d
sub eax, r9d
cmp ecx, eax
jbe 0x14002293a
sub ecx, eax
mov eax, dword [rdi + 0x34]
cmp ecx, eax
jbe 0x140022929
mov edx, dword [rdi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x14002292d
sub eax, ecx
mov edx, eax
mov eax, dword [rdi + 0x48]
add rdx, qword [rdi + 0x38]
cmp ecx, eax
jbe 0x140022945
jmp 0x140022943
mov eax, dword [rdi + 0x48]
mov rdx, r10
sub rdx, rcx
mov ecx, eax
cmp ecx, r9d
cmova ecx, r9d
sub r9d, ecx
sub eax, ecx
mov dword [rdi + 0x48], eax
mov dword [rsp + 0xa0], r9d
mov al, byte [rdx]
add rdx, rbx
mov byte [r10], al
add r10, rbx
add ecx, 0xffffffff
jne 0x14002295c
cmp dword [rdi + 0x48], r13d
mov qword [rsp + 0x40], r10
lea rdx, [0x140028548]
jne 0x140021891
mov dword [rdi], 0x12
jmp 0x14002188a
sub ecx, 0x17
je 0x140022ada
sub ecx, ebx
je 0x1400229c4
sub ecx, ebx
je 0x140022a90
sub ecx, ebx
je 0x140022ad5
sub ecx, ebx
je 0x140022b27
cmp ecx, ebx
jne 0x1400218e6
mov eax, 0xfffffffc
jmp 0x1400218eb
cmp dword [rdi + 8], r13d
je 0x140022a8a
jmp 0x1400229ed
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x1400229d0
sub r8d, r9d
add dword [r12 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
cmp r8d, r13d
je 0x140022a44
mov ecx, dword [rdi + 0x18]
mov eax, r8d
mov rdx, r10
sub rdx, rax
cmp dword [rdi + 0x10], r13d
je 0x140022a1c
call fcn.140023cec
jmp 0x140022a21
call fcn.140024048
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
lea r11, [0x140027eb8]
lea rdx, [0x140028548]
mov ecx, ebp
mov eax, ebp
mov r8d, r9d
shl eax, 0x10
and ecx, 0xff00
mov dword [rsp + 0xa8], r9d
add ecx, eax
mov eax, ebp
shr eax, 8
shl ecx, 8
and eax, 0xff00
add ecx, eax
mov eax, ebp
shr eax, 0x18
add ecx, eax
cmp dword [rdi + 0x10], r13d
cmovne ecx, ebp
cmp ecx, dword [rdi + 0x18]
jne 0x140021dbd
mov ebp, r13d
mov esi, r13d
mov dword [rdi], 0x19
cmp dword [rdi + 8], r13d
je 0x140022acf
cmp dword [rdi + 0x10], r13d
je 0x140022acf
jmp 0x140022abb
cmp r14d, r13d
je 0x140022b2f
movzx eax, byte [r15]
mov ecx, esi
add r14d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x140022a9e
cmp ebp, dword [rdi + 0x1c]
jne 0x140021dbd
mov ebp, r13d
mov esi, r13d
mov dword [rdi], 0x1a
mov r13d, ebx
jmp 0x140022b37
cmp r9d, r13d
je 0x140022b2f
mov al, byte [rdi + 0x48]
mov byte [r10], al
add r10, rbx
add r9d, 0xffffffff
mov dword [rsp + 0xa0], r9d
mov qword [rsp + 0x40], r10
mov dword [rdi], 0x12
jmp 0x140021891
mov qword [r12 + 0x10], r10
mov dword [r12 + 0x18], r9d
mov qword [r12], r15
mov dword [r12 + 8], r14d
mov eax, 2
mov dword [rdi + 0x40], ebp
mov dword [rdi + 0x44], esi
jmp 0x1400218eb
mov r13d, 0xfffffffd
jmp 0x140022b37
mov r13d, dword [rsp + 0x90]
mov rax, qword [rsp + 0x40]
mov ebx, dword [rsp + 0xa8]
mov qword [r12], r15
mov qword [r12 + 0x10], rax
mov eax, dword [rsp + 0xa0]
mov dword [r12 + 8], r14d
mov dword [r12 + 0x18], eax
mov dword [rdi + 0x40], ebp
xor ebp, ebp
cmp dword [rdi + 0x2c], ebp
mov dword [rdi + 0x44], esi
jne 0x140022b76
cmp dword [rdi], 0x18
jge 0x140022b8f
cmp ebx, dword [r12 + 0x18]
je 0x140022b8f
mov edx, ebx
mov rcx, r12
call fcn.140021700
cmp eax, ebp
je 0x140022b8f
mov dword [rdi], 0x1c
jmp 0x1400229ba
sub ebx, dword [r12 + 0x18]
mov esi, dword [rsp + 0x38]
sub esi, dword [r12 + 8]
add dword [r12 + 0x1c], ebx
add dword [r12 + 0xc], esi
add dword [rdi + 0x1c], ebx
cmp dword [rdi + 8], ebp
je 0x140022bdc
cmp ebx, ebp
je 0x140022bdc
mov rdx, qword [r12 + 0x10]
mov ecx, dword [rdi + 0x18]
mov eax, ebx
sub rdx, rax
cmp dword [rdi + 0x10], ebp
mov r8d, ebx
je 0x140022bcf
call fcn.140023cec
jmp 0x140022bd4
call fcn.140024048
mov dword [rdi + 0x18], eax
mov dword [r12 + 0x4c], eax
mov eax, dword [rdi + 4]
mov edx, 0x80
neg eax
mov eax, ebp
sbb ecx, ecx
and ecx, 0x40
cmp dword [rdi], 0xb
cmove eax, edx
add ecx, eax
add ecx, dword [rdi + 0x44]
cmp esi, ebp
mov dword [r12 + 0x48], ecx
jne 0x140022c11
cmp ebx, ebp
jne 0x140022c11
mov eax, 0xfffffffb
cmp r13d, ebp
cmove r13d, eax
mov eax, r13d
jmp 0x1400218eb