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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
movaps xmmword [rsp + 0x240], xmm6
mov rax, qword [0x1400eb158]
mov r12d, ecx
mov ebx, edx
mov word [rsp + 0x5c], dx
mov ecx, 0x2a8b8
mov edx, 1
mov esi, r8d
mov dword [rsp + 0x2b8], r9d
mov word [rsp + 0x5e], r8w
mov qword [rsp + 0x158], rax
call sub.api_ms_win_crt_heap_l1_1_0.dll_calloc
test r12w, r12w
mov word [rsp + 0x48], r12w
setle byte [rsp + 0x50]
test bx, bx
mov r15, rax
mov dword [rsp + 0x68], 0xa
setle dl
test si, si
mov ebx, r12d
setle al
mov edi, edx
xor esi, esi
or edi, eax
mov r12d, edi
sub dword [rsp + 0x68], 1
je 0x14003a9fc
cmp word [rsp + 0x48], 0
jle 0x14003ad55
mov r13, qword [0x140120da0]
mov rbp, qword [r13]
mov r14d, ebx
imul r14, r14, 0x340
mov eax, dword [rbp + r14 + 0x18]
test ah, 4
jne 0x14003a99b
test al, 2
je 0x14003aa1a
mov edi, r12d
mov qword [rsp + 0x78], rsi
test dil, dil
mov qword [rsp + 0x48], r13
jne 0x14003ba10
mov r8d, 0x8f3
xor edx, edx
mov rcx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
movsx rbp, bx
call fcn.140065110
mov edx, 0x7530
mov rcx, rax
mov r13, rax
call fcn.1400651f0
movsx rsi, word [rsp + 0x5c]
xor edx, edx
movsx rdi, word [rsp + 0x5e]
mov rax, qword [r13 + rsi*8]
mov word [rax + rdi*2], dx
call fcn.140065110
mov rcx, rax
mov rbx, rax
call fcn.1400040f0
mov rax, qword [0x140121460]
mov r8, rbx
mov qword [rsp + 0x90], rax
lea rcx, [rax + 0x7c4]
lea r9, [rax + 0x26850]
nop
mov rdx, qword [r8]
lea rax, [rcx - 0x7b4]
jmp 0x14003a6dd
add rax, 0x44
add rdx, 2
cmp rax, rcx
je 0x14003a708
cmp word [rdx], 1
jne 0x14003a6d0
test dword [rax], 0x3000000
je 0x14003a6d0
mov r12d, 0xffffffff
add rax, 0x44
add rdx, 2
mov word [rdx - 2], r12w
cmp rax, rcx
jne 0x14003a6dd
nop dword [rax + rax]
lea rcx, [rax + 0x7b4]
add r8, 8
cmp r9, rcx
jne 0x14003a6c0
mov rax, qword [rbx + rsi*8]
mov esi, 1
xor r8d, r8d
mov rdx, rbx
lea r12, [rsp + 0x1a0]
mov rcx, r13
mov word [rax + rdi*2], si
imul rsi, rbp, 0x340
call fcn.140008500
mov rcx, rbx
call fcn.140065180
mov rdi, qword [rsp + 0x48]
mov rax, qword [rdi]
add rax, rsi
movsx edx, word [rax + 0xe]
movsx ecx, word [rax + 0xc]
call fcn.140064c50
mov edx, 0x4f
mov rcx, r12
mov edi, eax
mov ebx, eax
call fcn.140064c30
mov edx, 0x4f
mov rcx, r12
call fcn.140064bd0
lea rax, [rsp + 0x160]
mov edx, 0x1d
mov rbp, rax
mov rcx, rax
mov qword [rsp + 0xf8], rax
call fcn.140064c30
mov rcx, rbp
mov edx, 0x1d
mov ebp, 1
call fcn.140064bd0
xor r11d, r11d
xor r9d, r9d
test di, di
jle 0x14003a8a0
mov r12, qword [rsp + 0x90]
mov rdx, rsi
xor r8d, r8d
mov byte [rsp + 0x50], bpl
mov r10d, r8d
movsx rcx, r10w
mov word [rsp + 0x40], r10w
movsx rcx, word [rsp + rcx*2 + 0x1a0]
lea rsi, [r13 + rcx*8]
mov r8, rcx
imul rcx, rcx, 0x1d
imul rdi, r8, 0x7b4
lea rbp, [r15 + rcx]
xor ecx, ecx
jmp 0x14003a81e
add ecx, 1
cmp bx, r9w
setg r8b
cmp cx, 0x1c
jg 0x14003a870
test r8b, r8b
je 0x14003a870
movsx rax, cx
mov r8, qword [rsi]
movsx r10, word [rsp + rax*2 + 0x160]
cmp word [r8 + r10*2], r11w
jne 0x14003a808
imul rax, r10, 0x44
mov byte [rbp + r10], 1
add rax, rdi
test byte [rax + r12 + 0x10], 0x20
jne 0x14003a850
add r9d, 1
jmp 0x14003a808
mov r9d, ebx
xor ebp, ebp
add r11d, 1
cmp r11w, 0x3e7
jg 0x14003a86b
cmp bx, r9w
jg 0x14003a7cc
mov rsi, rdx
jmp 0x14003a8a0
movzx r10d, word [rsp + 0x40]
lea ecx, [r10 + 1]
cmp cx, 0x4e
mov r10d, ecx
setle sil
test sil, r8b
je 0x14003ba21
cmp bx, r9w
jg 0x14003a7d7
movzx ebp, byte [rsp + 0x50]
mov rsi, rdx
mov rax, qword [rsp + 0x48]
mov rax, qword [rax]
mov eax, dword [rax + rsi + 0x18]
test ah, 8
jne 0x14003a948
test ah, 0x10
jne 0x14003ae2c
mov rcx, r13
call fcn.140065180
test bpl, bpl
je 0x14003a963
movsx eax, word [rsp + 0x5e]
mov dword [rsp + 0xe8], eax
movsx eax, word [rsp + 0x5c]
mov dword [rsp + 0xd4], eax
mov rcx, qword [rsp + 0x90]
lea rax, [r15 + 0x2cc0]
mov rdx, rax
mov qword [rsp + 0x110], rax
call fcn.140035360
mov rdi, qword [rsp + 0x48]
mov rax, qword [rdi]
add rax, r14
movzx edi, word [rax + 0x14]
mov eax, dword [rax + 0x18]
test ah, 2
mov dword [rsp + 0x40], eax
jne 0x14003af57
test dword [rsp + 0x40], 0x100
je 0x14003af64
mov edx, 4
mov rcx, r15
call fcn.140035730
jmp 0x14003af64
xor edx, edx
mov rcx, r15
call fcn.1400387c0
test ax, ax
je 0x14003af46
mov rcx, r13
call fcn.140065180
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14003a975
mov rcx, rax
call fcn.140065180
mov rcx, r15
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
xor eax, eax
movaps xmm6, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
mov r8d, 0x8f3
mov rcx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
test r12b, r12b
jne 0x14003ae50
movsx eax, word [rsp + 0x5c]
mov rcx, r15
movsx r8d, word [rsp + 0x5e]
mov edx, eax
mov dword [rsp + 0xd4], eax
mov dword [rsp + 0xe8], r8d
call fcn.140035240
test al, al
sete al
cmp word [rsp + 0x48], 0
mov ebp, eax
jle 0x14003acfe
test al, al
je 0x14003acfe
test r12b, r12b
jne 0x14003a5f6
test rsi, rsi
je 0x14003a975
mov rcx, rsi
call fcn.140065180
mov rcx, r15
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x14003a97d
mov rdi, qword [0x140121460]
mov r11d, 0xa
mov byte [rsp + 0x60], r12b
mov r12, r14
lea rax, [r15 + 0x2a81a]
mov word [rsp + 0x70], r11w
mov qword [rsp + 0x78], rax
lea rax, [r15 + 0x2a7e0]
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x2a0], ebx
xor edx, edx
mov r8d, 0x8f3
mov rcx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
cmp byte [rsp + 0x60], 0
jne 0x14003ac60
test rsi, rsi
je 0x14003ac53
xor edx, edx
mov rcx, rsi
call fcn.1400651f0
movsx eax, word [rsp + 0x5c]
mov r9d, 0x829c1
mov rcx, rsi
movsx r8d, word [rsp + 0x5e]
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
mov edx, eax
mov dword [rsp + 0xd4], eax
mov dword [rsp + 0xe8], r8d
call fcn.140008730
mov rax, qword [r13]
add rax, r12
movsx edx, word [rax + 0xe]
movsx ecx, word [rax + 0xc]
call fcn.140064c50
mov rbp, qword [rsp + 0x78]
mov edx, 0x4f
mov r14d, eax
mov ebx, eax
mov rcx, rbp
call fcn.140064c30
mov rcx, rbp
mov edx, 0x4f
call fcn.140064bd0
mov rbp, qword [rsp + 0x80]
mov edx, 0x1d
mov rcx, rbp
call fcn.140064c30
mov rcx, rbp
mov edx, 0x1d
xor ebp, ebp
call fcn.140064bd0
xor r11d, r11d
xor r8d, r8d
test r14w, r14w
jle 0x14003abfa
xor r14d, r14d
mov byte [rsp + 0x40], bpl
nop dword [rax]
movsx rax, word [r15 + r14*2 + 0x2a81a]
mov edx, 1
imul rbp, rax, 0x1d
mov r9, qword [rsi + rax*8]
imul r10, rax, 0x7b4
add rbp, r15
jmp 0x14003ab7d
cmp r8w, bx
setl al
cmp edx, 0x1c
setle cl
add rdx, 1
test cl, al
je 0x14003abd8
movsx rcx, word [r15 + rdx*2 + 0x2a7de]
mov rax, rcx
movsx ecx, word [r9 + rcx*2]
cmp ecx, r11d
jne 0x14003ab68
mov byte [rbp + rax], 1
imul rax, rax, 0x44
add rax, r10
test dword [rax + rdi + 0x10], 0x3000028
jne 0x14003abb0
add r8d, 1
jmp 0x14003ab68
mov r8d, ebx
mov ebp, 1
add r11d, 1
cmp r11d, 0x3e7
jg 0x14003abfa
cmp bx, r8w
jg 0x14003ab34
jmp 0x14003abfa
cmp r14d, 0x4d
setle dl
add r14, 1
test dl, al
je 0x14003ba2b
cmp r8w, bx
jl 0x14003ab40
movzx ebp, byte [rsp + 0x40]
mov rax, qword [r13]
mov eax, dword [rax + r12 + 0x18]
test ah, 8
jne 0x14003ad38
test ah, 0x10
jne 0x14003acb4
movzx edx, byte [rsp + 0x50]
mov eax, ebp
and eax, 1
and edx, ebp
test dl, dl
je 0x14003ace2
sub word [rsp + 0x70], 1
jne 0x14003aa57
cmp word [rsp + 0x48], 0
movzx r12d, byte [rsp + 0x60]
mov ebx, dword [rsp + 0x2a0]
jg 0x14003a9f3
jmp 0x14003a5f6
call fcn.140065110
mov rsi, rax
jmp 0x14003aa7b
movzx eax, word [rsp + 0x5c]
lea rcx, [rsp + 0x1a0]
xor r8d, r8d
mov edx, 2
mov r9d, 0xffffffff
mov word [rsp + 0x1a0], ax
movzx eax, word [rsp + 0x5e]
mov word [rsp + 0x1a2], ax
call fcn.14003a360
movzx eax, word [rsp + 0x1a0]
mov word [rsp + 0x5c], ax
movzx eax, word [rsp + 0x1a2]
mov word [rsp + 0x5e], ax
jmp 0x14003aa72
mov edx, 1
mov rcx, r15
call fcn.1400387c0
cmp ax, 0x63
jg 0x14003ac15
movzx edx, byte [rsp + 0x50]
mov eax, 1
mov ebp, 1
test dl, dl
jne 0x14003ac29
cmp word [rsp + 0x48], 0
mov r14, r12
mov ebx, dword [rsp + 0x2a0]
movzx r12d, byte [rsp + 0x60]
jg 0x14003a9eb
test bpl, bpl
jne 0x14003a5f6
mov rax, qword [0x140121460]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x160]
mov qword [rsp + 0xf8], rax
jmp 0x14003a8e7
xor edx, edx
mov rcx, r15
call fcn.1400387c0
test ax, ax
jne 0x14003accb
mov rax, qword [r13]
mov eax, dword [rax + r12 + 0x18]
jmp 0x14003ac0c
mov rdi, qword [0x140121040]
mov rax, qword [rdi]
mov r11d, dword [rax + 0x94]
cmp r11d, 1
jle 0x14003a9fc
mov r13, qword [0x140120da0]
mov r10d, 1
xor ebp, ebp
mov rax, qword [r13]
lea r9, [rax + 0x350]
mov edx, dword [rsp + 0x2b8]
movsx ecx, r10w
call fcn.1400353f0
test al, al
je 0x14003ada2
add bp, word [r9]
add r10d, 1
add r9, 0x340
cmp r10d, r11d
jne 0x14003ad8a
test bp, bp
je 0x14003a9fc
movsx edx, bp
mov ecx, 1
call fcn.140064c50
mov rbp, qword [r13]
mov r9d, 1
mov r10d, eax
mov rax, qword [rdi]
lea r11, [rbp + 0x350]
mov edi, dword [rax + 0x94]
cmp edi, 1
jg 0x14003ae07
jmp 0x14003a618
sub r10d, eax
add r9d, 1
add r11, 0x340
cmp r9d, edi
je 0x14003a618
mov edx, dword [rsp + 0x2b8]
movsx ecx, r9w
call fcn.1400353f0
test al, al
je 0x14003adf3
movsx eax, word [r11]
cmp eax, r10d
jl 0x14003adf0
mov ebx, r9d
jmp 0x14003a618
mov edx, 1
mov rcx, r15
call fcn.1400387c0
cmp ax, 0x63
jg 0x14003a8be
mov rcx, r13
call fcn.140065180
jmp 0x14003a963
mov ecx, 1
call fcn.140037940
mov r10, qword [r13]
xor r9d, r9d
xor r8d, r8d
mov rax, qword [0x140120e20]
mov rdi, qword [0x140121460]
add r10, r14
mov r11, qword [rax]
xor ecx, ecx
xor eax, eax
cmp r8w, 0x31
mov rdx, rdi
jg 0x14003aef7
mov dword [rsp + 0x2a0], ebx
jmp 0x14003ae97
cmp r8w, 0x31
jg 0x14003aef0
mov ebp, dword [rdx + 0x10]
test ebp, 0x800000
je 0x14003aee0
and ebp, 0x3000000
jne 0x14003aee0
mov rbp, qword [r11 + r9*8]
movzx ebp, word [rbp + rcx]
cmp bp, word [r10 + 0xc]
jl 0x14003aee0
cmp bp, word [r10 + 0xe]
jg 0x14003aee0
mov ebp, eax
movzx ebx, r9w
shl ebp, 0x10
or ebp, ebx
movsx rbx, r8w
add r8d, 1
mov dword [r15 + rbx*4 + 0x2a650], ebp
nop dword [rax]
add eax, 1
add rdx, 0x44
add rcx, 2
cmp eax, 0x1c
jle 0x14003ae90
mov ebx, dword [rsp + 0x2a0]
add r9, 1
add rdi, 0x7b4
cmp r9, 0x4f
jne 0x14003ae78
test r8w, r8w
je 0x14003a9fc
lea edx, [r8 - 1]
xor ecx, ecx
movsx edx, dx
call fcn.140064c50
cdqe
add rax, 0xa994
movzx edi, word [r15 + rax*4]
movzx eax, word [r15 + rax*4 + 2]
mov word [rsp + 0x5c], di
mov word [rsp + 0x5e], ax
jmp 0x14003a9b4
mov rax, qword [rsp + 0x48]
mov rax, qword [rax]
mov eax, dword [rax + rsi + 0x18]
jmp 0x14003a8b5
mov edx, 1
mov rcx, r15
call fcn.140035730
test byte [rsp + 0x40], 8
je 0x14003afcb
mov rax, qword [rsp + 0x90]
mov r9, r15
xor r8d, r8d
movdqa xmm0, xmmword [0x1400eb160]
lea rcx, [rax + 0x7b4]
lea rax, [rcx - 0x7b4]
mov rdx, r9
jmp 0x14003afa1
add rax, 0x44
add rdx, 1
cmp rcx, rax
je 0x14003afb6
cmp byte [rdx], 0
je 0x14003af94
movups xmmword [rax], xmm0
add rax, 0x44
add rdx, 1
cmp rcx, rax
jne 0x14003afa1
add r8, 1
add rcx, 0x7b4
add r9, 0x1d
cmp r8, 0x4f
jne 0x14003af88
test byte [rsp + 0x40], 4
je 0x14003b06a
mov rax, qword [rsp + 0x90]
xor ecx, ecx
mov r11, qword [0x140121620]
lea r10, [rax + 0x7b4]
mov rax, r15
lea rbx, [r10 - 0x7b4]
mov rsi, rax
jmp 0x14003b00a
add rbx, 0x44
add rsi, 1
cmp r10, rbx
je 0x14003b04f
cmp byte [rsi], 0
je 0x14003affd
mov r9, rbx
xor r8d, r8d
mov edx, dword [r9]
shl rdx, 8
test dword [r11 + rdx + 0x2c], 0x829c1
je 0x14003b034
xor edx, edx
test r8d, r8d
sete dl
add edx, edx
mov dword [r9], edx
add r8d, 1
add r9, 4
cmp r8d, 4
jne 0x14003b015
add rbx, 0x44
add rsi, 1
cmp r10, rbx
jne 0x14003b00a
add rcx, 0x7b4
add r10, 0x7b4
add rax, 0x1d
cmp rcx, 0x2608c
jne 0x14003aff1
test byte [rsp + 0x40], 0x10
je 0x14003b0bc
mov rax, qword [rsp + 0x90]
mov r8, r15
lea rcx, [rax + 0x7b8]
lea r9, [rax + 0x26844]
lea rax, [rcx - 0x7b4]
mov rdx, r8
cmp byte [rdx], 0
je 0x14003b09f
mov dword [rax], 0
add rax, 0x44
add rdx, 1
cmp rcx, rax
jne 0x14003b094
add rcx, 0x7b4
add r8, 0x1d
cmp r9, rcx
jne 0x14003b08a
test byte [rsp + 0x40], 0x20
je 0x14003b27f
mov rax, qword [rsp + 0x90]
xor edx, edx
mov rbp, r15
mov r10, r15
movdqa xmm6, xmmword [0x1400eb170]
lea rbx, [rax + 0x10]
mov rsi, rbx
mov rbx, r14
mov r14d, edx
mov r13, rsi
xor r12d, r12d
mov word [rsp + 0x50], di
mov edx, r14d
jmp 0x14003b10e
add r12, 1
add r13, 0x44
cmp r12, 0x1d
je 0x14003b257
cmp byte [rbp + r12], 0
je 0x14003b0fc
test dword [r13], 0x800000
jne 0x14003b0fc
mov r15, qword [0x1401213a0]
mov r14d, r12d
mov rax, r12
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov r12, rsi
mov rbx, r10
mov esi, r14d
mov ebp, edx
mov r14, rax
lea rdi, [r15 + 0x20]
jmp 0x14003b158
add r15, 4
cmp rdi, r15
je 0x14003b230
movzx r8d, word [r15 + 2]
movzx r9d, word [r15]
add r8d, esi
add r9d, ebp
cmp r8w, 0x1c
ja 0x14003b14b
cmp r9w, 0x4e
ja 0x14003b14b
movzx eax, r9w
movzx ecx, r8w
movzx r8d, r8w
imul rax, rax, 0x1d
add rax, rbx
cmp byte [rax + r8], 0
jne 0x14003b14b
shl ecx, 0x10
mov qword [rsp + 0x88], r8
mov edx, ecx
movzx ecx, r9w
mov dword [rsp + 0x80], r9d
or ecx, edx
mov dword [rsp + 0x70], edx
call fcn.140019980
test al, 1
jne 0x14003b14b
mov r9d, dword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
movzx eax, r9w
imul rax, rax, 0x7b4
imul r8, r8, 0x44
add r8, rax
mov rax, qword [rsp + 0x90]
add rax, r8
test byte [rax + 0x12], 0x80
jne 0x14003b14b
cmp byte [rax + 0x16], 0
mov edx, dword [rsp + 0x70]
jne 0x14003b14b
movzx ecx, r9w
mov qword [rsp + 0x70], r8
or ecx, edx
call fcn.140019980
mov r8, qword [rsp + 0x70]
test eax, 0x829c1
je 0x14003b14b
mov rax, qword [rsp + 0x90]
movups xmmword [r8 + rax], xmm6
jmp 0x14003b14b
mov rsi, r12
mov r12, r14
add r13, 0x44
add r12, 1
mov r10, rbx
mov edx, ebp
mov rbx, qword [rsp + 0x60]
cmp r12, 0x1d
mov rbp, qword [rsp + 0x68]
jne 0x14003b10e
mov r14d, edx
add rsi, 0x7b4
add rbp, 0x1d
movzx edi, word [rsp + 0x50]
add r14d, 1
cmp r14w, 0x4f
jne 0x14003b0ec
mov r14, rbx
mov r15, r10
test dword [rsp + 0x40], 0x4000
lea rax, [r15 + 0x8f3]
mov qword [rsp + 0x60], rax
jne 0x14003b5a0
test byte [rsp + 0x40], 0x40
je 0x14003b37c
mov rax, qword [rsp + 0x90]
mov r9, r15
xor esi, esi
add rax, 0x10
mov r10, rax
xor ecx, ecx
jmp 0x14003b2ce
add rcx, 1
add r10, 0x44
cmp rcx, 0x1d
je 0x14003b365
cmp byte [r9 + rcx], 0
je 0x14003b2bc
mov edx, dword [r10]
test edx, 0x800000
jne 0x14003b2bc
or edx, 0x8000000
mov ebx, ecx
mov dword [r10], edx
mov rdx, qword [0x1401213a0]
lea r11, [rdx + 0x20]
jmp 0x14003b301
add rdx, 4
cmp r11, rdx
je 0x14003b2bc
movzx r8d, word [rdx + 2]
movzx edi, word [rdx]
add r8d, ebx
add edi, esi
cmp r8w, 0x1c
ja 0x14003b2f8
cmp di, 0x4e
ja 0x14003b2f8
movzx ebp, di
movzx r8d, r8w
imul rbp, rbp, 0x1d
add rbp, r15
cmp byte [rbp + r8], 0
jne 0x14003b2f8
imul r8, r8, 0x44
movzx edi, di
imul rdi, rdi, 0x7b4
add r8, rdi
mov rdi, qword [rsp + 0x90]
add r8, rdi
mov edi, dword [r8 + 0x10]
test edi, 0x800000
jne 0x14003b2f8
or edi, 0x8000000
mov dword [r8 + 0x10], edi
jmp 0x14003b2f8
add esi, 1
add rax, 0x7b4
add r9, 0x1d
cmp si, 0x4f
jne 0x14003b2b5
mov rax, qword [0x140121540]
xor r8d, r8d
mov r11, qword [0x140121620]
movzx eax, word [rax + 0xda]
lea ebp, [rax + 1]
mov word [rsp + 0x40], ax
mov rax, qword [0x140121540]
mov word [rsp + 0xee], bp
mov word [rax + 0xda], bp
mov rax, qword [rsp + 0x48]
mov rbx, qword [rax]
mov rax, qword [rsp + 0x90]
add rbx, r14
lea r10, [rax + 0x7b4]
mov rax, r15
lea rcx, [r10 - 0x7b4]
mov rdi, rax
jmp 0x14003b3e8
add rcx, 0x44
add rdi, 1
cmp r10, rcx
je 0x14003b458
cmp byte [rdi], 0
je 0x14003b3db
mov edx, dword [rbx + 0x18]
mov byte [rcx + 0x16], bpl
and edx, 0x400
cmp edx, 1
sbb edx, edx
and edx, 0x1000000
add edx, 0x1000000
or dword [rcx + 0x10], edx
cmp dword [rcx], 9
jne 0x14003b419
mov dword [rcx], 7
mov rsi, rcx
xor r9d, r9d
nop
mov edx, dword [rsi]
shl rdx, 8
test dword [r11 + rdx + 0x30], 0xc00
je 0x14003b43d
xor edx, edx
test r9d, r9d
sete dl
add edx, edx
mov dword [rsi], edx
add r9d, 1
add rsi, 4
cmp r9d, 4
jne 0x14003b420
add rcx, 0x44
add rdi, 1
cmp r10, rcx
jne 0x14003b3e8
add r8, 0x7b4
add r10, 0x7b4
add rax, 0x1d
cmp r8, 0x2608c
jne 0x14003b3cf
cmp qword [rsp + 0x78], 0
je 0x14003b591
mov rsi, qword [rsp + 0x78]
xor edx, edx
mov rcx, rsi
call fcn.1400651f0
mov r8d, dword [rsp + 0xe8]
mov r9d, 0x829c1
mov rcx, rsi
mov edx, dword [rsp + 0xd4]
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
call fcn.140008730
mov ecx, 0x19
xor eax, eax
mov r9, rsi
lea rdx, [r15 + 0x2a718]
mov r10, r15
xor r8d, r8d
mov rdi, rdx
rep stosq qword [rdi], rax
mov rdx, r10
xor eax, eax
nop word [rax + rax]
cmp byte [rdx], 0
je 0x14003b511
mov rcx, qword [r9]
movsx rcx, word [rcx + rax]
cmp cx, 0x63
jg 0x14003b511
add word [r15 + rcx*2 + 0x2a718], 1
add r8d, 1
add rax, 2
add rdx, 1
cmp rax, 0x3a
jne 0x14003b4f0
add r10, 0x1d
add r9, 8
cmp qword [rsp + 0x60], r10
jne 0x14003b4e5
lea eax, [r8 + 3]
test r8w, r8w
cmovns eax, r8d
movsx r8d, r8w
lea edx, [r8 + r8*2]
sar ax, 2
movsx edi, ax
test edx, edx
lea eax, [rdx + 3]
cmovns eax, edx
mov edx, edi
sar eax, 2
mov dword [rsp + 0x118], eax
xor eax, eax
jmp 0x14003b578
add rax, 1
sub edx, ecx
cmp rax, 0x64
je 0x14003ba38
movsx ecx, word [r15 + rax*2 + 0x2a718]
cmp ecx, edx
jl 0x14003b568
mov dword [rsp + 0x120], eax
jmp 0x14003ba3f
call fcn.140065110
mov qword [rsp + 0x78], rax
jmp 0x14003b483
call fcn.140065110
xor r10d, r10d
mov r12, r14
mov rsi, r15
mov rbp, rax
mov qword [rsp + 0x50], rax
xor r13d, r13d
mov r14, r15
mov qword [rsp + 0x88], rax
mov word [rsp + 0x68], r10w
movzx eax, r13w
mov qword [rsp + 0x80], rsi
xor ebx, ebx
mov rsi, rbp
mov dword [rsp + 0x60], eax
mov word [rsp + 0x70], di
jmp 0x14003b617
mov rax, qword [rsi]
add rax, rdi
cmp r13w, word [rsp + 0x5c]
jne 0x14003b778
cmp word [rsp + 0x5e], bx
jne 0x14003b778
mov r9d, 1
mov word [rax], r9w
add rbx, 1
cmp rbx, 0x1d
je 0x14003b667
cmp byte [r14 + rbx], 0
lea rdi, [rbx + rbx]
jne 0x14003b5e6
mov eax, dword [rsp + 0x60]
mov ebp, ebx
shl ebp, 0x10
or ebp, eax
mov ecx, ebp
call fcn.140019980
test eax, 0x829c1
je 0x14003b793
mov ecx, ebp
call fcn.1400199e0
test eax, 0x400003
jne 0x14003b784
mov rax, qword [rsi]
add rbx, 1
mov ebp, 0xffffffff
cmp rbx, 0x1d
mov word [rax + rdi], bp
jne 0x14003b617
mov rbp, rsi
add r13d, 1
add r14, 0x1d
movsx rdi, word [rsp + 0x70]
add rbp, 8
cmp r13w, 0x4f
mov rsi, qword [rsp + 0x80]
jne 0x14003b5ca
mov rax, qword [0x140120f70]
lea rdx, [rdi + rdi*8]
mov r9d, 0x28
mov r14, r12
mov rcx, qword [rsp + 0x50]
mov r8d, 0x28
lea rdx, [rax + rdx*2]
call fcn.140038000
movzx edi, word [rsp + 0x68]
lea rax, [r15 + 0x8f3]
mov qword [rsp + 0x60], rax
test di, di
jg 0x14003b82f
mov rcx, qword [rsp + 0x50]
mov edx, 0xa
call fcn.140036110
mov rax, qword [rsp + 0x90]
xor r9d, r9d
mov r10, qword [rsp + 0x88]
lea r8, [rax + 0x7b4]
lea rax, [r8 - 0x7b4]
mov rdx, rsi
xor ecx, ecx
cmp byte [rdx], 0
je 0x14003b73a
mov r11, qword [r10]
cmp word [r11 + rcx], 0
js 0x14003b73a
mov qword [rax + 8], 0
jne 0x14003b734
mov dword [rax], 1
mov byte [rdx], 0
mov r11, qword [r10]
cmp word [r11 + rcx], 0
jle 0x14003b73a
mov dword [rax], 2
add rax, 0x44
add rdx, 1
add rcx, 2
cmp r8, rax
jne 0x14003b706
add r9, 1
add r8, 0x7b4
add r10, 8
add rsi, 0x1d
cmp r9, 0x4f
jne 0x14003b6fa
mov rcx, qword [rsp + 0x50]
call fcn.140065180
jmp 0x14003b299
xor r8d, r8d
mov word [rax], r8w
jmp 0x14003b60d
mov ecx, ebp
call fcn.140019980
test al, 1
je 0x14003b651
mov rax, qword [rsi]
mov ecx, 1
mov r11d, ebx
mov rdx, qword [0x1401213a0]
add rax, rdi
mov word [rax], cx
lea r9, [rdx + 0x10]
movzx r8d, word [rdx + 2]
movzx r10d, word [rdx]
add r8d, r11d
add r10d, r13d
cmp r8w, 0x1c
ja 0x14003b7cc
cmp r10w, 0x4e
jbe 0x14003b7da
add rdx, 4
cmp r9, rdx
jne 0x14003b7af
jmp 0x14003b60d
movzx ecx, r10w
movzx edi, r8w
imul rcx, rcx, 0x1d
add rcx, r15
cmp byte [rcx + rdi], 0
je 0x14003b7cc
cmp r10w, word [rsp + 0x5c]
jne 0x14003b7ff
cmp r8w, word [rsp + 0x5e]
je 0x14003b7cc
movsx rdx, word [rsp + 0x68]
mov word [rsp + rdx*4 + 0x1a0], r10w
mov rdi, rdx
mov word [rsp + rdx*4 + 0x1a2], r8w
add edi, 1
mov edx, 0xffffffff
mov word [rsp + 0x68], di
mov word [rax], dx
jmp 0x14003b60d
call fcn.140065110
lea rbx, [rsp + 0x1a0]
mov ebp, 0x7530
mov r13, rax
call fcn.140065110
mov qword [rsp + 0x98], r14
mov r12, rax
movsx rax, di
mov qword [rsp + 0xa0], rsi
lea rax, [rbx + rax*4]
mov qword [rsp + 0x70], rax
mov rdi, qword [rsp + 0x50]
mov rcx, r13
mov r8, r12
mov r10, r15
xor r14d, r14d
mov r9, r15
mov r15, qword [rcx]
xor eax, eax
mov qword [rsp + 0x68], rbx
mov rsi, qword [r8]
mov qword [rsp + 0x80], r8
jmp 0x14003b8bb
mov r11, qword [rdi]
mov ebx, r14d
cmp word [r11 + rax*2], 0
mov r11d, 1
cmovle ebx, ebp
add rax, 1
mov word [r8], bx
cmp rax, 0x1d
mov word [rdx], r11w
je 0x14003b8da
lea rdx, [rax + rax]
lea r8, [r15 + rdx]
add rdx, rsi
cmp byte [r10 + rax], 0
jne 0x14003b894
mov ebx, 0x7530
mov r11d, 0xfffffffe
jmp 0x14003b8a9
mov r8, qword [rsp + 0x80]
add rdi, 8
add r10, 0x1d
add rcx, 8
mov rbx, qword [rsp + 0x68]
add r8, 8
cmp qword [rsp + 0x60], r10
jne 0x14003b87d
xor r8d, r8d
mov rdx, r12
mov rcx, r13
mov r15, r9
call fcn.140008500
movsx rdx, word [rbx]
movsx rax, word [rbx + 2]
lea r14, [rdx*8]
mov rcx, rdx
mov rdx, qword [r13 + rdx*8]
lea r9, [rax + rax]
mov rsi, rax
movzx edx, word [rdx + rax*2]
mov rax, qword [0x1401213a0]
add rax, 0x10
test dx, dx
mov qword [rsp + 0x80], rax
jle 0x14003b9dc
mov rax, qword [0x1401213a0]
mov word [rsp + 0x68], cx
movzx edi, word [rax + 2]
movzx r11d, word [rsp + 0x68]
add r11w, word [rax]
add edi, esi
cmp di, 0x1c
ja 0x14003b97c
cmp r11w, 0x4e
jbe 0x14003b991
add rax, 4
cmp qword [rsp + 0x80], rax
jne 0x14003b95f
movzx ecx, word [rsp + 0x68]
jmp 0x14003b953
movzx r10d, r11w
movzx r8d, di
mov rcx, qword [r13 + r10*8]
cmp word [rcx + r8*2], dx
jge 0x14003b97c
mov rax, qword [rsp + 0x50]
mov esi, edi
mov edi, 1
mov ecx, r11d
mov rax, qword [rax + r14]
lea r14, [r10*8]
mov word [rax + r9], di
mov rax, qword [r13 + r10*8]
lea r9, [r8 + r8]
movzx edx, word [rax + r8*2]
test dx, dx
jg 0x14003b953
add rbx, 4
cmp qword [rsp + 0x70], rbx
jne 0x14003b869
mov rcx, r13
mov r14, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
call fcn.140065180
mov rcx, r12
call fcn.140065180
jmp 0x14003b6d1
test rsi, rsi
mov rax, rsi
jne 0x14003a96d
jmp 0x14003a975
movzx ebp, byte [rsp + 0x50]
jmp 0x14003a855
movzx ebp, byte [rsp + 0x40]
jmp 0x14003abb8
mov dword [rsp + 0x120], edx
mov edx, dword [rsp + 0x118]
xor eax, eax
jmp 0x14003ba5c
add rax, 1
sub edx, ecx
cmp rax, 0x64
je 0x14003ba72
movsx ecx, word [r15 + rax*2 + 0x2a718]
cmp ecx, edx
jl 0x14003ba50
mov dword [rsp + 0x118], eax
jmp 0x14003ba79
mov dword [rsp + 0x118], edx
mov rax, qword [rsp + 0x48]
mov rbx, qword [rax]
movsx edi, word [rbx + r14 + 0x12]
test di, di
jle 0x14003baa2
lea r12, [rsp + 0x1a0]
movsx r8d, di
xor edx, edx
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
lea rbp, [rsp + 0x158]
add rbx, r14
lea r12, [rsp + 0x1a0]
lea r13, [rsp + 0x1a1]
test di, di
mov rcx, rbx
jle 0x14003bb4a
mov esi, dword [rbp]
lea r8d, [rdi - 1]
mov rdx, r12
xor eax, eax
lea r9, [rbx + 0x40]
add r8, r13
mov r10d, esi
and r10d, dword [r9]
je 0x14003baea
mov byte [rdx], 1
add eax, 1
add rdx, 1
add r9, 0x28
cmp r8, rdx
jne 0x14003badc
test ax, ax
jle 0x14003bb4a
movsx edx, ax
mov ecx, 1
call fcn.140064c50
mov edx, eax
mov rax, qword [rsp + 0x48]
mov rbx, qword [rax]
add rbx, r14
movsx r9d, word [rbx + 0x12]
mov rcx, rbx
test r9w, r9w
jle 0x14003bb4a
lea r8, [rbx + 0x40]
xor eax, eax
mov r10d, esi
and r10d, dword [r8]
je 0x14003bb3e
cmp edx, 1
je 0x14003c0ef
sub edx, 1
add eax, 1
add r8, 0x28
cmp r9d, eax
jne 0x14003bb2a
add rbp, 4
cmp qword [rsp + 0xf8], rbp
je 0x14003bb61
movsx edi, word [rbx + 0x12]
jmp 0x14003babd
mov qword [rsp + 0xc0], rcx
mov rcx, qword [rsp + 0x60]
xor edx, edx
mov r8d, 0x8f3
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
cmp word [rbx + 0x12], 0
jle 0x14003cb70
xor r13d, r13d
xor r9d, r9d
xor r10d, r10d
mov qword [rsp + 0x40], r14
lea r12, [rsp + 0x1a0]
xor r11d, r11d
mov qword [rsp + 0xf0], 0
mov rbp, r13
mov rdi, r12
mov byte [rsp + 0x11f], 0
mov r12, qword [rsp + 0x48]
mov qword [rsp + 0x108], 0
mov qword [rsp + 0xe0], 0
mov word [rsp + 0x11c], r9w
mov word [rsp + 0xd2], r10w
mov word [rsp + 0xec], r11w
mov qword [rsp + 0xb8], r15
jmp 0x14003bc1c
mov rax, qword [rsp + 0x40]
add rbp, 1
add rax, qword [r12]
mov qword [rsp + 0xc0], rax
movsx eax, word [rax + 0x12]
cmp eax, ebp
jle 0x14003c0fe
cmp byte [rdi + rbp], 0
jne 0x14003bbfb
mov rsi, qword [rsp + 0xc0]
movsxd rax, ebp
movsxd rbx, ebp
lea rax, [rax + rax*4]
mov r13d, dword [rsi + rax*8 + 0x40]
mov eax, 0x2710
test r13d, 0x400
cmovne eax, dword [rsp + 0x120]
mov dword [rsp + 0xa0], eax
xor eax, eax
test r13d, 0x800
cmovne eax, dword [rsp + 0x118]
test r13d, 0x6000000
mov word [rsp + 0xd0], ax
jne 0x14003cacb
movsx eax, word [rsp + 0xee]
mov qword [rsp + 0x128], rbp
mov rsi, qword [rsp + 0xc0]
mov qword [rsp + 0x130], rdi
mov dword [rsp + 0x124], eax
lea rax, [rbx + rbx*4]
lea r15, [rsi + rax*8]
mov qword [rsp + 0x100], rax
mov r14, r15
mov rax, qword [rsp + 0x90]
xor r8d, r8d
mov qword [rsp + 0x48], r14
xor edi, edi
mov rcx, qword [rsp + 0xb8]
mov word [rsp + 0x50], r8w
mov r14, r12
lea rbx, [rax + 0x10]
mov rsi, rbx
mov r15, rcx
lea rax, [r15 + 0x8f3]
mov dword [rsp + 0x68], edi
mov rbp, rsi
mov r12, r14
mov qword [rsp + 0x60], rax
lea rax, [r15 + 0x23cc]
mov rbx, qword [rsp + 0xb8]
mov qword [rsp + 0x98], rax
imul rax, rdi, 0x1d
mov word [rsp + 0x70], di
mov word [rsp + 0x88], di
mov qword [rsp + 0xd8], rsi
add rax, rbx
xor ebx, ebx
mov qword [rsp + 0xc8], rax
nop dword [rax]
mov rax, qword [r12]
test r13d, 0x8000000
mov r14d, ebx
mov rsi, qword [rsp + 0x40]
mov esi, dword [rax + rsi + 0x18]
jne 0x14003c398
test r13d, 0x10000000
je 0x14003bd74
test di, di
je 0x14003bda0
cmp di, 0x4e
je 0x14003bda0
mov eax, 0x10000001
bt rax, r14
jb 0x14003bda0
test r13b, 0x40
jne 0x14003c3b8
and esi, 0x400
je 0x14003c270
cmp word [rsp + 0x5c], di
jne 0x14003c270
cmp word [rsp + 0x5e], bx
jne 0x14003c270
xor eax, eax
nop word [rax + rax]
mov byte [r15 + rbx + 0x11e6], al
add rbx, 1
add rbp, 0x44
mov rax, qword [rsp + 0x48]
cmp rbx, 0x1d
mov r13d, dword [rax + 0x40]
jne 0x14003bd38
mov rsi, qword [rsp + 0xd8]
add rdi, 1
add r15, 0x1d
mov r14, r12
add rsi, 0x7b4
cmp rdi, 0x4f
jne 0x14003bce1
mov r14, qword [rsp + 0x48]
mov eax, 1
mov byte [rsp + 0x60], 1
test r13d, 0x8000
je 0x14003caa0
movzx edi, word [r14 + 0x34]
xor r10d, r10d
cmp word [rsp + 0x50], 0
mov word [rsp + 0x68], di
jle 0x14003c0be
test al, al
je 0x14003c0be
mov r15, qword [rsp + 0x108]
mov qword [rsp + 0x48], r12
mov eax, r13d
mov r12d, r10d
mov rsi, qword [rsp + 0xb8]
test al, 0x40
je 0x14003ca40
movsxd r13, dword [rsp + 0xd4]
mov ebx, dword [rsp + 0xe8]
mov edi, r13d
sub word [rsp + 0x50], 1
imul rdx, r13, 0x1d
movsxd rbp, ebx
add rdx, rsi
mov byte [rdx + rbp + 0x11e6], 0
mov edx, dword [r14 + 0x1c]
test edx, edx
jne 0x14003c781
mov ecx, dword [r14 + 0x20]
test ecx, ecx
jne 0x14003c704
movsx r8d, word [rsp + 0x68]
mov r9d, edi
lea ecx, [r8 + rdi]
sub r9d, r8d
add r9d, 1
mov dword [rsp + 0x70], ecx
cmp r9d, ecx
jge 0x14003bf3e
mov edx, ebx
sub edx, r8d
add r8d, ebx
lea ecx, [rdx + 1]
add edx, 0x11e7
mov dword [rsp + 0x80], ecx
movsxd rcx, r9d
movsxd rdx, edx
imul rcx, rcx, 0x1d
add rcx, rdx
lea r10, [rsi + rcx]
mov edx, dword [rsp + 0x80]
cmp edx, r8d
jge 0x14003bf2d
cmp r9w, 0x4e
mov rcx, r10
setbe r11b
jmp 0x14003bf01
add edx, 1
add rcx, 1
cmp edx, r8d
je 0x14003bf2d
cmp dx, 0x1c
ja 0x14003bef5
test r11b, r11b
je 0x14003bef5
cmp byte [rcx], 0
je 0x14003bf1a
sub word [rsp + 0x50], 1
mov byte [rcx], 0
add edx, 1
mov byte [rcx - 0x8f3], 1
add rcx, 1
cmp edx, r8d
jne 0x14003bf01
mov edx, dword [rsp + 0x70]
add r9d, 1
add r10, 0x1d
cmp r9d, edx
jne 0x14003bedb
imul rdx, rbp, 0x44
mov r11, qword [rsp + 0x40]
add r12d, 1
imul r10, r13, 0x7b4
mov rcx, qword [rsp + 0x90]
add rdx, r10
add rdx, rcx
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx]
mov r8d, dword [rcx + r11 + 0x18]
movzx r11d, byte [rsp + 0xee]
mov ecx, r8d
and ecx, 0x400
mov byte [rdx + 0x16], r11b
cmp ecx, 1
sbb ecx, ecx
and ecx, 0x1000000
add ecx, 0x1000000
or ecx, dword [rdx + 0x10]
mov r9d, ecx
or r9d, 0x8000000
test eax, 0x1000000
cmovne ecx, r9d
test al, 1
mov dword [rdx + 0x10], ecx
jne 0x14003c5f1
xor ebp, ebp
cmp qword [rsp + 0x2c0], 0
je 0x14003c071
test al, 8
je 0x14003c071
and r8d, 1
je 0x14003c071
mov rdx, qword [rsp + 0x2c0]
mov qword [rsp + 0x2c0], 0
mov ecx, dword [rdx + 4]
mov rbp, rdx
or ecx, dword [r14 + 0x3c]
movzx edx, di
mov r8d, eax
shr r8d, 0x1e
and r8d, 1
mov dword [rbp + 4], ecx
mov ecx, ebx
shl ecx, 0x10
or ecx, edx
xor edx, edx
mov r9d, ecx
cmp word [rbp + rdx*8 + 0x8e], 0
jne 0x14003c029
cmp word [rbp + rdx*8 + 0x92], 0
je 0x14003c038
add rdx, 1
cmp rdx, 0x14
jne 0x14003c013
mov edx, 0x14
movsxd rdx, edx
add rdx, 0x10
test eax, 0x20000000
mov dword [rbp + rdx*8 + 0xe], r9d
mov byte [rbp + rdx*8 + 0x14], r8b
mov rdx, qword [0x140121540]
movzx edx, word [rdx + 2]
mov word [rbp + 0x12e], dx
jne 0x14003cd15
test eax, 0x1002
je 0x14003cc50
test al, 6
jne 0x14003cc66
test al, 0x20
jne 0x14003c9a8
cmp word [r14 + 0x32], 0
jne 0x14003c7f7
cmp word [rsp + 0x11c], r12w
setg dl
or dl, byte [rsp + 0x60]
je 0x14003c0ab
cmp word [rsp + 0x50], 0
jg 0x14003be47
mov r10d, r12d
mov r12, qword [rsp + 0x48]
mov qword [rsp + 0x108], r15
mov r13d, eax
test r13d, 0x800000
movzx eax, word [r14 + 0x2c]
je 0x14003cbb0
cmp r10w, ax
jge 0x14003bcb4
mov rbp, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x130]
jmp 0x14003bbfb
cdqe
mov byte [rsp + rax + 0x1a0], 0
jmp 0x14003bb4a
cmp qword [rsp + 0xe0], 0
mov r15, qword [rsp + 0xb8]
setne bl
cmp qword [rsp + 0xf0], 0
setne al
and ebx, eax
mov rax, qword [rsp + 0xc0]
test byte [rax + 0x19], 0x20
je 0x14003c19d
mov r13, qword [rsp + 0x90]
xor r12d, r12d
movsx edi, word [rsp + 0xee]
add r13, 0x10
mov rsi, r13
xor ebp, ebp
movzx r14d, r12w
jmp 0x14003c15c
add ebp, 1
add rsi, 0x44
cmp ebp, 0x1d
je 0x14003c18c
movzx eax, byte [rsi + 6]
cmp eax, edi
jne 0x14003c150
mov ecx, ebp
shl ecx, 0x10
or ecx, r14d
call fcn.1400199e0
test ah, 0xc
jne 0x14003c150
and dword [rsi], 0xfcffffff
add ebp, 1
mov byte [rsi + 6], 0
add rsi, 0x44
cmp ebp, 0x1d
jne 0x14003c15c
add r12d, 1
add r13, 0x7b4
cmp r12d, 0x4f
jne 0x14003c145
test bl, bl
je 0x14003c1e3
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rax + 0x230]
test rcx, rcx
je 0x14003c1ba
call fcn.140031480
mov rax, qword [0x140121000]
mov rdi, qword [rsp + 0xf0]
mov rdx, qword [rax]
mov rcx, rdi
call fcn.140031420
mov rax, qword [rsp + 0xe0]
mov qword [rax + 0x230], rdi
mov rcx, qword [rsp + 0x78]
call fcn.140065180
cmp qword [rsp + 0x2c8], 0
je 0x14003c222
movzx eax, word [rsp + 0xd2]
test ax, ax
jle 0x14003c222
mov rcx, qword [rsp + 0x2c8]
lea rdx, [r15 + 0x28d50]
cwde
lea r8, [rax*8]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
cmp qword [rsp + 0x2d0], 0
je 0x14003c257
movzx eax, word [rsp + 0xec]
test ax, ax
jle 0x14003c257
mov rcx, qword [rsp + 0x2d0]
lea rdx, [r15 + 0x299d0]
cwde
lea r8, [rax*8]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov rcx, r15
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov eax, 1
jmp 0x14003a97f
mov rax, qword [rsp + 0x60]
cmp byte [rax + rbx], 0
jne 0x14003bda0
test r13d, 0x6000000
je 0x14003c29a
mov rax, qword [rsp + 0x98]
cmp byte [rax + rbx], 0
je 0x14003bda0
movzx eax, word [rsp + 0x88]
mov edx, ebx
mov r14d, ebx
shl edx, 0x10
or edx, eax
mov ecx, edx
mov dword [rsp + 0x80], edx
call fcn.140019980
test al, 1
je 0x14003c3e0
mov rsi, qword [0x1401213a0]
mov rax, r12
mov edx, 0x2710
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rbx
mov r12, rbp
mov ebx, edx
mov ebp, r14d
mov r14, rax
lea r10, [rsi + 0x10]
mov rdi, r10
jmp 0x14003c301
add rsi, 4
cmp rsi, rdi
je 0x14003c372
movzx eax, word [rsi + 2]
movd xmm6, dword [rsi]
add eax, ebp
cmp ax, 0x1c
ja 0x14003c2f8
movzx edx, word [rsp + 0x70]
movzx eax, word [rsi]
add eax, edx
cmp ax, 0x4e
ja 0x14003c2f8
mov eax, ebp
movzx ecx, dx
shl eax, 0x10
or eax, ecx
movd xmm1, eax
paddw xmm6, xmm1
movd ecx, xmm6
call fcn.140019980
test al, 1
jne 0x14003c2f8
mov rdx, qword [rsp + 0x78]
pextrw eax, xmm6, 0
pextrw ecx, xmm6, 1
movsx r9d, bx
mov rax, qword [rdx + rax*8]
movsx ecx, word [rax + rcx*2]
mov eax, ecx
add ecx, 1
add eax, 1
cmp r9d, ecx
cmovg ebx, eax
add rsi, 4
cmp rsi, rdi
jne 0x14003c301
mov rax, r14
mov edx, ebx
mov r14d, ebp
mov rdi, qword [rsp + 0xa8]
mov rbp, r12
mov rbx, qword [rsp + 0xb0]
mov r12, rax
jmp 0x14003c3ed
mov ecx, dword [rsp + 0x68]
mov edx, ebx
call fcn.140037790
cmp ax, 1
jle 0x14003bd55
jmp 0x14003bda0
cmp word [rsp + 0x5c], di
jne 0x14003bda0
cmp word [rsp + 0x5e], bx
jne 0x14003bda0
add word [rsp + 0x50], 1
mov eax, 1
jmp 0x14003bda8
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + rdi*8]
movzx edx, word [rax + rbx*2]
cmp dx, word [rsp + 0xa0]
jg 0x14003bda0
cmp dx, word [rsp + 0xd0]
jl 0x14003bda0
test r13d, 0x200000
je 0x14003c4c2
mov rax, qword [rsp + 0xc8]
cmp byte [rax + rbx], 0
jne 0x14003bda0
movzx eax, byte [rbp + 6]
test al, al
je 0x14003c43f
mov esi, dword [rsp + 0x124]
cmp eax, esi
jne 0x14003bda0
mov ecx, dword [rsp + 0x80]
call fcn.140019980
test al, 1
je 0x14003bda0
mov rsi, qword [0x1401213a0]
mov qword [rsp + 0xb0], r12
mov r12, rdi
movzx edi, word [rsp + 0x70]
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0x80], rbx
lea r8, [rsi + 0x10]
mov rbp, r8
movzx eax, word [rsi + 2]
movzx ebx, word [rsi]
add eax, r14d
add ebx, edi
cmp ax, 0x1c
ja 0x14003c499
cmp bx, 0x4e
jbe 0x14003c500
add rsi, 4
cmp rsi, rbp
jne 0x14003c481
mov rdi, r12
mov rbx, qword [rsp + 0x80]
mov rbp, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
jmp 0x14003bda0
mov ecx, dword [rsp + 0x80]
call fcn.140019980
test al, 1
jne 0x14003bda0
test r13d, 0x400000
je 0x14003c5b0
and r13d, 1
jne 0x14003c5c7
mov eax, dword [rbp]
test eax, 0x3000000
je 0x14003c3ce
jmp 0x14003bda0
movzx ecx, bx
mov rdx, qword [rsp + 0xb8]
movzx r10d, ax
movzx r11d, ax
imul rcx, rcx, 0x1d
add rcx, rdx
cmp byte [rcx + r10], 0
je 0x14003c52f
cmp bx, word [rsp + 0x5c]
jne 0x14003c58a
cmp ax, word [rsp + 0x5e]
jne 0x14003c58a
test r13d, 0x400000
je 0x14003c499
shl r11d, 0x10
movzx ecx, bx
mov qword [rsp + 0x138], r10
or ecx, r11d
call fcn.140019980
test eax, 0x829c1
jne 0x14003c499
mov r10, qword [rsp + 0x138]
movzx eax, bx
imul rax, rax, 0x7b4
mov rbx, qword [rsp + 0x90]
imul r10, r10, 0x44
add rax, r10
cmp byte [rax + rbx + 0x16], 0
jne 0x14003c499
mov rdi, r12
mov rbx, qword [rsp + 0x80]
mov rbp, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
jmp 0x14003c3ce
mov rax, qword [rsp + 0xc8]
cmp byte [rax + rbx], 0
je 0x14003bda0
jmp 0x14003c3ce
mov ecx, dword [rsp + 0x80]
call fcn.140019980
test eax, 0x829c5
jne 0x14003bda0
mov eax, dword [rbp]
test eax, 0x3600000
jne 0x14003bda0
jmp 0x14003c4f0
cmp qword [rsp + 0x2c0], 0
je 0x14003c60a
test al, 8
je 0x14003c60a
and r8d, 1
jne 0x14003bfd8
movsx edx, word [r14 + 0x30]
mov r13d, 0x3e9
movzx ecx, word [r14 + 0x2e]
call fcn.140021820
mov rbp, rax
movsx rax, word [rsp + 0xd2]
shl rax, 3
mov qword [rsp + 0x70], rax
mov ecx, dword [rbp + 4]
test cl, 4
jne 0x14003c6c4
mov eax, dword [r14 + 0x40]
test eax, 0x40000
je 0x14003c650
test cl, 0x20
je 0x14003c6c4
test al, 0x10
movzx edx, word [rbp]
je 0x14003c65e
cmp dx, 2
je 0x14003c68b
test dx, 0x1fe
jne 0x14003c692
movsx rdx, word [rsp + 0xd2]
mov r11, rdx
mov qword [rsi + rdx*8 + 0x28d50], rbp
add r11d, 1
mov word [rsp + 0xd2], r11w
jmp 0x14003bff2
cmp word [rbp + 0x38], 1
jg 0x14003c6c4
cmp word [rsp + 0xd2], 0
lea rdx, [rsi + 0x28d50]
jle 0x14003c665
mov r11, qword [rsp + 0x70]
mov r10d, dword [rbp]
lea r9, [rdx + r11]
jmp 0x14003c6bc
add rdx, 8
cmp rdx, r9
je 0x14003c665
mov r8, qword [rdx]
cmp dword [r8], r10d
jne 0x14003c6b3
mov rcx, rbp
call fcn.140031480
movsx edx, word [r14 + 0x30]
movzx ecx, word [r14 + 0x2e]
call fcn.140021820
sub r13d, 1
mov rbp, rax
jne 0x14003c634
mov ecx, dword [rax + 4]
mov rdx, qword [rsp + 0x100]
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + rdx*8 + 0x40]
jmp 0x14003c665
test ah, 1
jne 0x14003c7cb
mov edx, ecx
mov r8d, eax
shl rdx, 8
add rdx, qword [0x140121620]
and r8d, 0x200
mov edx, dword [rdx + 0x2c]
and edx, 0x829c1
or edx, r8d
je 0x14003c7cb
lea rcx, [rsi + 0x1ad9]
xor edx, edx
mov r8d, 0x8f3
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
xor edx, edx
mov rcx, rax
imul rax, r13, 0x1d
add rax, rsi
mov byte [rax + rbp + 0x1ad9], 1
call fcn.1400387c0
test ax, ax
mov rax, qword [rsp + 0xc0]
je 0x14003c7b9
mov rdi, qword [rsp + 0x100]
mov eax, dword [rax + rdi*8 + 0x40]
jmp 0x14003c08d
shl rdx, 7
shr eax, 8
xor r9d, r9d
mov r8, rdx
add r8, qword [0x140120f60]
xor eax, 1
mov edx, ebx
and eax, 1
mov ecx, edi
mov dword [rsp + 0x20], eax
call fcn.140038ea0
test al, al
mov eax, dword [r14 + 0x40]
jne 0x14003be85
jmp 0x14003c08d
mov rdx, qword [rsp + 0x100]
lea rax, [rax + rdx*8]
mov ecx, dword [rax + 0x20]
mov eax, dword [rax + 0x40]
imul rdx, r13, 0x1ed
movsxd r9, dword [r14 + 0x24]
mov r8, rbp
mov r11, qword [rsp + 0x90]
shl r8, 4
add r8, rbp
add rdx, r8
add rdx, r9
mov dword [r11 + rdx*4], ecx
jmp 0x14003be91
movzx edi, di
shl ebx, 0x10
or ebx, edi
mov ecx, ebx
call fcn.14000c3c0
test rax, rax
mov rcx, rax
je 0x14003c818
mov edx, 1
call fcn.140055fc0
movsx ecx, word [r14 + 0x32]
mov r8d, 1
mov edx, 1
call fcn.1400101a0
test rax, rax
je 0x14003c8a6
movd xmm2, ebx
mov rdi, qword [rsp + 0x90]
mov dword [rax + 0xf8], ebx
pextrw ecx, xmm2, 0
pextrw edx, xmm2, 1
movsx rcx, cx
movsx rdx, dx
imul rdx, rdx, 0x44
imul rcx, rcx, 0x7b4
add rdx, rcx
or dword [rdx + rdi + 0x10], 8
or dword [rax + 0x210], 0x1000
test r15, r15
cmove r15, rax
test rbp, rbp
je 0x14003c8a6
test byte [r14 + 0x41], 0x10
cmove rbp, qword [rsp + 0xf0]
cmove rax, qword [rsp + 0xe0]
mov qword [rsp + 0xf0], rbp
mov qword [rsp + 0xe0], rax
mov rax, qword [0x140121380]
lea rbx, [rsp + 0x140]
mov rcx, qword [rsp + 0xf8]
mov rdx, qword [rax]
call fcn.14000b6e0
movzx ebp, word [rsp + 0xec]
jmp 0x14003c8eb
mov rcx, qword [rsp + 0xf8]
call fcn.14000b730
mov rdi, rax
mov eax, dword [rax + 0x210]
test ah, 0x10
jne 0x14003c919
movdqa xmm4, xmmword [rsp + 0x160]
mov rcx, rbx
movaps xmmword [rsp + 0x140], xmm4
call fcn.14000b720
test al, al
jne 0x14003c8d0
mov eax, dword [r14 + 0x40]
mov word [rsp + 0xec], bp
jmp 0x14003c08d
test al, 0xc0
jne 0x14003c94f
test r15, r15
je 0x14003c9e9
cmp r15, rdi
je 0x14003c9e9
and eax, 0xffffffbf
mov qword [rdi + 0x220], r15
or al, 0x80
mov dword [rdi + 0x210], eax
or dword [r15 + 0x210], 0x40
mov eax, dword [rdi + 0x210]
and ah, 0xef
mov dword [rdi + 0x210], eax
movsx rax, bp
add ebp, 1
mov qword [rsi + rax*8 + 0x299d0], rdi
mov eax, dword [r14 + 0x40]
test ah, 0x20
je 0x14003c97a
mov dword [rdi + 0x10c], 0
test ah, 0x40
je 0x14003c98d
mov rdx, qword [0x1400eb180]
mov qword [rdi + 0x10c], rdx
test eax, 0x80000
jne 0x14003c9f1
movzx eax, word [rsp + 0xee]
mov word [rdi + 0x216], ax
jmp 0x14003c8eb
mov r9d, dword [r14 + 0x38]
shl ebx, 0x10
movzx edi, di
xor ecx, ecx
mov edx, ebx
or edx, edi
mov ebx, edx
mov r8d, r9d
not r8d
and r8d, 0xa
call fcn.140010a90
test rax, rax
je 0x14003ca18
or dword [rax + 0x210], 0x1000
cmp word [r14 + 0x32], 0
je 0x14003c873
jmp 0x14003c7ff
mov r15, rdi
jmp 0x14003c94f
mov rcx, rdi
call fcn.140015370
test byte [r14 + 0x41], 0x20
jne 0x14003c994
cmp dword [rdi + 0x10c], 4
je 0x14003c994
mov dword [rdi + 0x10c], 1
jmp 0x14003c994
mov rax, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x100]
cmp word [rax + rdi*8 + 0x32], 0
je 0x14003c8a6
jmp 0x14003c7ff
movsx edx, word [rsp + 0x50]
mov ecx, 1
xor edi, edi
call fcn.140064c50
movsxd r13, edi
xor ebx, ebx
imul rdx, r13, 0x1d
add rdx, rsi
jmp 0x14003ca6c
sub eax, 1
add rbx, 1
cmp rbx, 0x1d
je 0x14003ca84
cmp byte [rdx + rbx + 0x11e6], 0
je 0x14003ca62
cmp eax, 1
jne 0x14003ca5f
mov eax, dword [r14 + 0x40]
jmp 0x14003be61
add edi, 1
cmp edi, 0x4e
jle 0x14003ca51
or ebx, 0xffffffff
or edi, 0xffffffff
or r13, 0xffffffffffffffff
jmp 0x14003ca7b
movsx edx, word [r14 + 0x2a]
movsx ecx, word [r14 + 0x28]
call fcn.140064c50
mov r13d, dword [r14 + 0x40]
mov byte [rsp + 0x60], 0
test ax, ax
mov word [rsp + 0x11c], ax
setg al
jmp 0x14003be0b
mov rax, qword [rsp + 0xb8]
xor edx, edx
mov r8d, 0x8f3
lea rcx, [rax + 0x23cc]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov rsi, qword [rsp + 0xc0]
mov rcx, rax
lea rax, [rbx + rbx*4]
test byte [rsi + rax*8 + 0x43], 4
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
je 0x14003cc11
mov r8d, dword [rsp + 0xe8]
mov dword [rsp + 0x20], 0x829c1
mov r9d, 0x4f0000
mov edx, dword [rsp + 0xd4]
call fcn.140008210
movsxd rax, dword [rsp + 0xd4]
mov rsi, qword [rsp + 0xb8]
movsxd rdx, dword [rsp + 0xe8]
imul rax, rax, 0x1d
add rax, rsi
mov rsi, qword [rsp + 0xc0]
mov byte [rdx + rax + 0x23cc], 1
lea rax, [rbx + rbx*4]
mov r13d, dword [rsi + rax*8 + 0x40]
jmp 0x14003bc7a
test byte [rbx + 0x19], 0x20
je 0x14003cc38
xor eax, eax
xor edx, edx
xor ebx, ebx
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xf0], 0
mov word [rsp + 0xd2], ax
mov word [rsp + 0xec], dx
jmp 0x14003c12e
cmp r10w, ax
mov rbp, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x130]
jge 0x14003bbfb
mov r15, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x110]
call fcn.140035360
lea rdx, [r15 + 0x299d0]
lea rcx, [r15 + 0x28d50]
call fcn.140036020
mov rcx, qword [rsp + 0x78]
call fcn.140065180
mov rcx, r15
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x14003a97d
mov r8d, dword [rsp + 0xe8]
mov dword [rsp + 0x20], 3
mov r9d, 0x4f0000
mov edx, dword [rsp + 0xd4]
call fcn.140008210
jmp 0x14003cb33
mov rcx, qword [rsp + 0x78]
call fcn.140065180
jmp 0x14003c257
mov edx, ecx
mov rcx, rbp
call fcn.1400256e0
mov eax, dword [r14 + 0x40]
test al, 6
je 0x14003c079
test rbp, rbp
movzx edx, byte [rsp + 0x11f]
mov r13d, 0xa
setne byte [rsp + 0x70]
jmp 0x14003cc9c
test al, 4
jne 0x14003ce0b
test dl, dl
jne 0x14003cd64
sub r13d, 1
je 0x14003cd5c
mov eax, dword [r14 + 0x40]
test al, 2
je 0x14003cc7e
cmp byte [rsp + 0x70], 0
je 0x14003cc7e
mov rax, qword [0x140121000]
mov rcx, rbp
mov rdx, qword [rax]
call fcn.140031420
mov rax, qword [0x1401213f0]
mov rcx, rbp
mov rdx, qword [rax]
call fcn.140031420
mov edx, 0xffffffff
mov ecx, 0xffffffff
mov qword [rbp + 0x140], 0
lea rax, [rsi + 0x2a010]
mov qword [rsp + 0x20], rbp
mov r9d, 1
mov r8d, 0xffffffff
mov qword [rsp + 0x30], rax
lea rax, [rsi + 0x29390]
mov qword [rsp + 0x28], rax
call fcn.14003a570
mov edx, eax
jmp 0x14003cc86
xor edx, edx
cmp word [rbp + rdx*8 + 0x8e], 0
jne 0x14003cd2d
cmp word [rbp + rdx*8 + 0x92], 0
je 0x14003cd3c
add rdx, 1
cmp rdx, 0x14
jne 0x14003cd17
mov edx, 0x14
movzx r11d, word [rsp + 0xee]
movsxd rdx, edx
add rdx, 0x10
mov byte [rbp + rdx*8 + 0x14], r8b
mov word [rbp + rdx*8 + 0x12], r11w
jmp 0x14003c066
mov r15, rsi
jmp 0x14003cbd2
mov byte [rsp + 0x11f], dl
lea rax, [rsi + 0x29390]
movzx edx, word [rsp + 0xd2]
lea rcx, [rsi + 0x299d0]
jmp 0x14003cda8
movsx r9, dx
add rax, 8
add edx, 1
mov qword [rsi + r9*8 + 0x28d50], r8
mov qword [rax - 8], 0
cmp rax, rcx
je 0x14003cdb0
mov r8, qword [rax]
test r8, r8
jne 0x14003cd88
mov word [rsp + 0xd2], dx
lea rax, [rsi + 0x2a010]
movzx edx, word [rsp + 0xec]
lea rcx, [rsi + 0x2a650]
jmp 0x14003cdf0
movsx r9, dx
add rax, 8
add edx, 1
mov qword [rsi + r9*8 + 0x299d0], r8
mov qword [rax - 8], 0
cmp rax, rcx
je 0x14003cdf8
mov r8, qword [rax]
test r8, r8
jne 0x14003cdd0
mov eax, dword [r14 + 0x40]
mov word [rsp + 0xec], dx
xor ebp, ebp
jmp 0x14003c079
lea rax, [rsi + 0x2a010]
mov edx, edi
mov r8d, ebx
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x30], rax
mov r9d, 2
mov ecx, 0xffffffff
lea rax, [rsi + 0x29390]
mov qword [rsp + 0x28], rax
call fcn.14003a570
mov edx, eax
jmp 0x14003cc86