Function at 0x14003a580
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 0x14003aa0c
cmp word [rsp + 0x48], 0
jle 0x14003ad65
mov r13, qword [0x140120de0]
mov rbp, qword [r13]
mov r14d, ebx
imul r14, r14, 0x340
mov eax, dword [rbp + r14 + 0x18]
test ah, 4
jne 0x14003a9ab
test al, 2
je 0x14003aa2a
mov edi, r12d
mov qword [rsp + 0x78], rsi
test dil, dil
mov qword [rsp + 0x48], r13
jne 0x14003ba20
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.140065130
mov edx, 0x7530
mov rcx, rax
mov r13, rax
call fcn.140065210
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.140065130
mov rcx, rax
mov rbx, rax
call fcn.1400040f0
mov rax, qword [0x1401214a0]
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 0x14003a6ed
add rax, 0x44
add rdx, 2
cmp rax, rcx
je 0x14003a718
cmp word [rdx], 1
jne 0x14003a6e0
test dword [rax], 0x3000000
je 0x14003a6e0
mov r12d, 0xffffffff
add rax, 0x44
add rdx, 2
mov word [rdx - 2], r12w
cmp rax, rcx
jne 0x14003a6ed
nop dword [rax + rax]
lea rcx, [rax + 0x7b4]
add r8, 8
cmp r9, rcx
jne 0x14003a6d0
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.1400651a0
mov rdi, qword [rsp + 0x48]
mov rax, qword [rdi]
add rax, rsi
movsx edx, word [rax + 0xe]
movsx ecx, word [rax + 0xc]
call fcn.140064c70
mov edx, 0x4f
mov rcx, r12
mov edi, eax
mov ebx, eax
call fcn.140064c50
mov edx, 0x4f
mov rcx, r12
call fcn.140064bf0
lea rax, [rsp + 0x160]
mov edx, 0x1d
mov rbp, rax
mov rcx, rax
mov qword [rsp + 0xf8], rax
call fcn.140064c50
mov rcx, rbp
mov edx, 0x1d
mov ebp, 1
call fcn.140064bf0
xor r11d, r11d
xor r9d, r9d
test di, di
jle 0x14003a8b0
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 0x14003a82e
add ecx, 1
cmp bx, r9w
setg r8b
cmp cx, 0x1c
jg 0x14003a880
test r8b, r8b
je 0x14003a880
movsx rax, cx
mov r8, qword [rsi]
movsx r10, word [rsp + rax*2 + 0x160]
cmp word [r8 + r10*2], r11w
jne 0x14003a818
imul rax, r10, 0x44
mov byte [rbp + r10], 1
add rax, rdi
test byte [rax + r12 + 0x10], 0x20
jne 0x14003a860
add r9d, 1
jmp 0x14003a818
mov r9d, ebx
xor ebp, ebp
add r11d, 1
cmp r11w, 0x3e7
jg 0x14003a87b
cmp bx, r9w
jg 0x14003a7dc
mov rsi, rdx
jmp 0x14003a8b0
movzx r10d, word [rsp + 0x40]
lea ecx, [r10 + 1]
cmp cx, 0x4e
mov r10d, ecx
setle sil
test sil, r8b
je 0x14003ba31
cmp bx, r9w
jg 0x14003a7e7
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 0x14003a958
test ah, 0x10
jne 0x14003ae3c
mov rcx, r13
call fcn.1400651a0
test bpl, bpl
je 0x14003a973
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.140035370
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 0x14003af67
test dword [rsp + 0x40], 0x100
je 0x14003af74
mov edx, 4
mov rcx, r15
call fcn.140035740
jmp 0x14003af74
xor edx, edx
mov rcx, r15
call fcn.1400387d0
test ax, ax
je 0x14003af56
mov rcx, r13
call fcn.1400651a0
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14003a985
mov rcx, rax
call fcn.1400651a0
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 0x14003ae60
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.140035250
test al, al
sete al
cmp word [rsp + 0x48], 0
mov ebp, eax
jle 0x14003ad0e
test al, al
je 0x14003ad0e
test r12b, r12b
jne 0x14003a606
test rsi, rsi
je 0x14003a985
mov rcx, rsi
call fcn.1400651a0
mov rcx, r15
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x14003a98d
mov rdi, qword [0x1401214a0]
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 0x14003ac70
test rsi, rsi
je 0x14003ac63
xor edx, edx
mov rcx, rsi
call fcn.140065210
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.140064c70
mov rbp, qword [rsp + 0x78]
mov edx, 0x4f
mov r14d, eax
mov ebx, eax
mov rcx, rbp
call fcn.140064c50
mov rcx, rbp
mov edx, 0x4f
call fcn.140064bf0
mov rbp, qword [rsp + 0x80]
mov edx, 0x1d
mov rcx, rbp
call fcn.140064c50
mov rcx, rbp
mov edx, 0x1d
xor ebp, ebp
call fcn.140064bf0
xor r11d, r11d
xor r8d, r8d
test r14w, r14w
jle 0x14003ac0a
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 0x14003ab8d
cmp r8w, bx
setl al
cmp edx, 0x1c
setle cl
add rdx, 1
test cl, al
je 0x14003abe8
movsx rcx, word [r15 + rdx*2 + 0x2a7de]
mov rax, rcx
movsx ecx, word [r9 + rcx*2]
cmp ecx, r11d
jne 0x14003ab78
mov byte [rbp + rax], 1
imul rax, rax, 0x44
add rax, r10
test dword [rax + rdi + 0x10], 0x3000028
jne 0x14003abc0
add r8d, 1
jmp 0x14003ab78
mov r8d, ebx
mov ebp, 1
add r11d, 1
cmp r11d, 0x3e7
jg 0x14003ac0a
cmp bx, r8w
jg 0x14003ab44
jmp 0x14003ac0a
cmp r14d, 0x4d
setle dl
add r14, 1
test dl, al
je 0x14003ba3b
cmp r8w, bx
jl 0x14003ab50
movzx ebp, byte [rsp + 0x40]
mov rax, qword [r13]
mov eax, dword [rax + r12 + 0x18]
test ah, 8
jne 0x14003ad48
test ah, 0x10
jne 0x14003acc4
movzx edx, byte [rsp + 0x50]
mov eax, ebp
and eax, 1
and edx, ebp
test dl, dl
je 0x14003acf2
sub word [rsp + 0x70], 1
jne 0x14003aa67
cmp word [rsp + 0x48], 0
movzx r12d, byte [rsp + 0x60]
mov ebx, dword [rsp + 0x2a0]
jg 0x14003aa03
jmp 0x14003a606
call fcn.140065130
mov rsi, rax
jmp 0x14003aa8b
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.14003a370
movzx eax, word [rsp + 0x1a0]
mov word [rsp + 0x5c], ax
movzx eax, word [rsp + 0x1a2]
mov word [rsp + 0x5e], ax
jmp 0x14003aa82
mov edx, 1
mov rcx, r15
call fcn.1400387d0
cmp ax, 0x63
jg 0x14003ac25
movzx edx, byte [rsp + 0x50]
mov eax, 1
mov ebp, 1
test dl, dl
jne 0x14003ac39
cmp word [rsp + 0x48], 0
mov r14, r12
mov ebx, dword [rsp + 0x2a0]
movzx r12d, byte [rsp + 0x60]
jg 0x14003a9fb
test bpl, bpl
jne 0x14003a606
mov rax, qword [0x1401214a0]
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 0x14003a8f7
xor edx, edx
mov rcx, r15
call fcn.1400387d0
test ax, ax
jne 0x14003acdb
mov rax, qword [r13]
mov eax, dword [rax + r12 + 0x18]
jmp 0x14003ac1c
mov rdi, qword [0x140121080]
mov rax, qword [rdi]
mov r11d, dword [rax + 0x98]
cmp r11d, 1
jle 0x14003aa0c
mov r13, qword [0x140120de0]
mov r10d, 1
xor ebp, ebp
mov rax, qword [r13]
lea r9, [rax + 0x350]
mov edx, dword [rsp + 0x2b8]
movsx ecx, r10w
call fcn.140035400
test al, al
je 0x14003adb2
add bp, word [r9]
add r10d, 1
add r9, 0x340
cmp r10d, r11d
jne 0x14003ad9a
test bp, bp
je 0x14003aa0c
movsx edx, bp
mov ecx, 1
call fcn.140064c70
mov rbp, qword [r13]
mov r9d, 1
mov r10d, eax
mov rax, qword [rdi]
lea r11, [rbp + 0x350]
mov edi, dword [rax + 0x98]
cmp edi, 1
jg 0x14003ae17
jmp 0x14003a628
sub r10d, eax
add r9d, 1
add r11, 0x340
cmp r9d, edi
je 0x14003a628
mov edx, dword [rsp + 0x2b8]
movsx ecx, r9w
call fcn.140035400
test al, al
je 0x14003ae03
movsx eax, word [r11]
cmp eax, r10d
jl 0x14003ae00
mov ebx, r9d
jmp 0x14003a628
mov edx, 1
mov rcx, r15
call fcn.1400387d0
cmp ax, 0x63
jg 0x14003a8ce
mov rcx, r13
call fcn.1400651a0
jmp 0x14003a973
mov ecx, 1
call fcn.140037950
mov r10, qword [r13]
xor r9d, r9d
xor r8d, r8d
mov rax, qword [0x140120e60]
mov rdi, qword [0x1401214a0]
add r10, r14
mov r11, qword [rax]
xor ecx, ecx
xor eax, eax
cmp r8w, 0x31
mov rdx, rdi
jg 0x14003af07
mov dword [rsp + 0x2a0], ebx
jmp 0x14003aea7
cmp r8w, 0x31
jg 0x14003af00
mov ebp, dword [rdx + 0x10]
test ebp, 0x800000
je 0x14003aef0
and ebp, 0x3000000
jne 0x14003aef0
mov rbp, qword [r11 + r9*8]
movzx ebp, word [rbp + rcx]
cmp bp, word [r10 + 0xc]
jl 0x14003aef0
cmp bp, word [r10 + 0xe]
jg 0x14003aef0
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 0x14003aea0
mov ebx, dword [rsp + 0x2a0]
add r9, 1
add rdi, 0x7b4
cmp r9, 0x4f
jne 0x14003ae88
test r8w, r8w
je 0x14003aa0c
lea edx, [r8 - 1]
xor ecx, ecx
movsx edx, dx
call fcn.140064c70
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 0x14003a9c4
mov rax, qword [rsp + 0x48]
mov rax, qword [rax]
mov eax, dword [rax + rsi + 0x18]
jmp 0x14003a8c5
mov edx, 1
mov rcx, r15
call fcn.140035740
test byte [rsp + 0x40], 8
je 0x14003afdb
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 0x14003afb1
add rax, 0x44
add rdx, 1
cmp rcx, rax
je 0x14003afc6
cmp byte [rdx], 0
je 0x14003afa4
movups xmmword [rax], xmm0
add rax, 0x44
add rdx, 1
cmp rcx, rax
jne 0x14003afb1
add r8, 1
add rcx, 0x7b4
add r9, 0x1d
cmp r8, 0x4f
jne 0x14003af98
test byte [rsp + 0x40], 4
je 0x14003b07a
mov rax, qword [rsp + 0x90]
xor ecx, ecx
mov r11, qword [0x140121660]
lea r10, [rax + 0x7b4]
mov rax, r15
lea rbx, [r10 - 0x7b4]
mov rsi, rax
jmp 0x14003b01a
add rbx, 0x44
add rsi, 1
cmp r10, rbx
je 0x14003b05f
cmp byte [rsi], 0
je 0x14003b00d
mov r9, rbx
xor r8d, r8d
mov edx, dword [r9]
shl rdx, 8
test dword [r11 + rdx + 0x2c], 0x829c1
je 0x14003b044
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 0x14003b025
add rbx, 0x44
add rsi, 1
cmp r10, rbx
jne 0x14003b01a
add rcx, 0x7b4
add r10, 0x7b4
add rax, 0x1d
cmp rcx, 0x2608c
jne 0x14003b001
test byte [rsp + 0x40], 0x10
je 0x14003b0cc
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 0x14003b0af
mov dword [rax], 0
add rax, 0x44
add rdx, 1
cmp rcx, rax
jne 0x14003b0a4
add rcx, 0x7b4
add r8, 0x1d
cmp r9, rcx
jne 0x14003b09a
test byte [rsp + 0x40], 0x20
je 0x14003b28f
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 0x14003b11e
add r12, 1
add r13, 0x44
cmp r12, 0x1d
je 0x14003b267
cmp byte [rbp + r12], 0
je 0x14003b10c
test dword [r13], 0x800000
jne 0x14003b10c
mov r15, qword [0x1401213e0]
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 0x14003b168
add r15, 4
cmp rdi, r15
je 0x14003b240
movzx r8d, word [r15 + 2]
movzx r9d, word [r15]
add r8d, esi
add r9d, ebp
cmp r8w, 0x1c
ja 0x14003b15b
cmp r9w, 0x4e
ja 0x14003b15b
movzx eax, r9w
movzx ecx, r8w
movzx r8d, r8w
imul rax, rax, 0x1d
add rax, rbx
cmp byte [rax + r8], 0
jne 0x14003b15b
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 0x14003b15b
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 0x14003b15b
cmp byte [rax + 0x16], 0
mov edx, dword [rsp + 0x70]
jne 0x14003b15b
movzx ecx, r9w
mov qword [rsp + 0x70], r8
or ecx, edx
call fcn.140019980
mov r8, qword [rsp + 0x70]
test eax, 0x829c1
je 0x14003b15b
mov rax, qword [rsp + 0x90]
movups xmmword [r8 + rax], xmm6
jmp 0x14003b15b
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 0x14003b11e
mov r14d, edx
add rsi, 0x7b4
add rbp, 0x1d
movzx edi, word [rsp + 0x50]
add r14d, 1
cmp r14w, 0x4f
jne 0x14003b0fc
mov r14, rbx
mov r15, r10
test dword [rsp + 0x40], 0x4000
lea rax, [r15 + 0x8f3]
mov qword [rsp + 0x60], rax
jne 0x14003b5b0
test byte [rsp + 0x40], 0x40
je 0x14003b38c
mov rax, qword [rsp + 0x90]
mov r9, r15
xor esi, esi
add rax, 0x10
mov r10, rax
xor ecx, ecx
jmp 0x14003b2de
add rcx, 1
add r10, 0x44
cmp rcx, 0x1d
je 0x14003b375
cmp byte [r9 + rcx], 0
je 0x14003b2cc
mov edx, dword [r10]
test edx, 0x800000
jne 0x14003b2cc
or edx, 0x8000000
mov ebx, ecx
mov dword [r10], edx
mov rdx, qword [0x1401213e0]
lea r11, [rdx + 0x20]
jmp 0x14003b311
add rdx, 4
cmp r11, rdx
je 0x14003b2cc
movzx r8d, word [rdx + 2]
movzx edi, word [rdx]
add r8d, ebx
add edi, esi
cmp r8w, 0x1c
ja 0x14003b308
cmp di, 0x4e
ja 0x14003b308
movzx ebp, di
movzx r8d, r8w
imul rbp, rbp, 0x1d
add rbp, r15
cmp byte [rbp + r8], 0
jne 0x14003b308
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 0x14003b308
or edi, 0x8000000
mov dword [r8 + 0x10], edi
jmp 0x14003b308
add esi, 1
add rax, 0x7b4
add r9, 0x1d
cmp si, 0x4f
jne 0x14003b2c5
mov rax, qword [0x140121580]
xor r8d, r8d
mov r11, qword [0x140121660]
movzx eax, word [rax + 0xda]
lea ebp, [rax + 1]
mov word [rsp + 0x40], ax
mov rax, qword [0x140121580]
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 0x14003b3f8
add rcx, 0x44
add rdi, 1
cmp r10, rcx
je 0x14003b468
cmp byte [rdi], 0
je 0x14003b3eb
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 0x14003b429
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 0x14003b44d
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 0x14003b430
add rcx, 0x44
add rdi, 1
cmp r10, rcx
jne 0x14003b3f8
add r8, 0x7b4
add r10, 0x7b4
add rax, 0x1d
cmp r8, 0x2608c
jne 0x14003b3df
cmp qword [rsp + 0x78], 0
je 0x14003b5a1
mov rsi, qword [rsp + 0x78]
xor edx, edx
mov rcx, rsi
call fcn.140065210
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 0x14003b521
mov rcx, qword [r9]
movsx rcx, word [rcx + rax]
cmp cx, 0x63
jg 0x14003b521
add word [r15 + rcx*2 + 0x2a718], 1
add r8d, 1
add rax, 2
add rdx, 1
cmp rax, 0x3a
jne 0x14003b500
add r10, 0x1d
add r9, 8
cmp qword [rsp + 0x60], r10
jne 0x14003b4f5
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 0x14003b588
add rax, 1
sub edx, ecx
cmp rax, 0x64
je 0x14003ba48
movsx ecx, word [r15 + rax*2 + 0x2a718]
cmp ecx, edx
jl 0x14003b578
mov dword [rsp + 0x120], eax
jmp 0x14003ba4f
call fcn.140065130
mov qword [rsp + 0x78], rax
jmp 0x14003b493
call fcn.140065130
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 0x14003b627
mov rax, qword [rsi]
add rax, rdi
cmp r13w, word [rsp + 0x5c]
jne 0x14003b788
cmp word [rsp + 0x5e], bx
jne 0x14003b788
mov r9d, 1
mov word [rax], r9w
add rbx, 1
cmp rbx, 0x1d
je 0x14003b677
cmp byte [r14 + rbx], 0
lea rdi, [rbx + rbx]
jne 0x14003b5f6
mov eax, dword [rsp + 0x60]
mov ebp, ebx
shl ebp, 0x10
or ebp, eax
mov ecx, ebp
call fcn.140019980
test eax, 0x829c1
je 0x14003b7a3
mov ecx, ebp
call fcn.1400199e0
test eax, 0x400003
jne 0x14003b794
mov rax, qword [rsi]
add rbx, 1
mov ebp, 0xffffffff
cmp rbx, 0x1d
mov word [rax + rdi], bp
jne 0x14003b627
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 0x14003b5da
mov rax, qword [0x140120fb0]
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.140038010
movzx edi, word [rsp + 0x68]
lea rax, [r15 + 0x8f3]
mov qword [rsp + 0x60], rax
test di, di
jg 0x14003b83f
mov rcx, qword [rsp + 0x50]
mov edx, 0xa
call fcn.140036120
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 0x14003b74a
mov r11, qword [r10]
cmp word [r11 + rcx], 0
js 0x14003b74a
mov qword [rax + 8], 0
jne 0x14003b744
mov dword [rax], 1
mov byte [rdx], 0
mov r11, qword [r10]
cmp word [r11 + rcx], 0
jle 0x14003b74a
mov dword [rax], 2
add rax, 0x44
add rdx, 1
add rcx, 2
cmp r8, rax
jne 0x14003b716
add r9, 1
add r8, 0x7b4
add r10, 8
add rsi, 0x1d
cmp r9, 0x4f
jne 0x14003b70a
mov rcx, qword [rsp + 0x50]
call fcn.1400651a0
jmp 0x14003b2a9
xor r8d, r8d
mov word [rax], r8w
jmp 0x14003b61d
mov ecx, ebp
call fcn.140019980
test al, 1
je 0x14003b661
mov rax, qword [rsi]
mov ecx, 1
mov r11d, ebx
mov rdx, qword [0x1401213e0]
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 0x14003b7dc
cmp r10w, 0x4e
jbe 0x14003b7ea
add rdx, 4
cmp r9, rdx
jne 0x14003b7bf
jmp 0x14003b61d
movzx ecx, r10w
movzx edi, r8w
imul rcx, rcx, 0x1d
add rcx, r15
cmp byte [rcx + rdi], 0
je 0x14003b7dc
cmp r10w, word [rsp + 0x5c]
jne 0x14003b80f
cmp r8w, word [rsp + 0x5e]
je 0x14003b7dc
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 0x14003b61d
call fcn.140065130
lea rbx, [rsp + 0x1a0]
mov ebp, 0x7530
mov r13, rax
call fcn.140065130
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 0x14003b8cb
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 0x14003b8ea
lea rdx, [rax + rax]
lea r8, [r15 + rdx]
add rdx, rsi
cmp byte [r10 + rax], 0
jne 0x14003b8a4
mov ebx, 0x7530
mov r11d, 0xfffffffe
jmp 0x14003b8b9
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 0x14003b88d
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 [0x1401213e0]
add rax, 0x10
test dx, dx
mov qword [rsp + 0x80], rax
jle 0x14003b9ec
mov rax, qword [0x1401213e0]
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 0x14003b98c
cmp r11w, 0x4e
jbe 0x14003b9a1
add rax, 4
cmp qword [rsp + 0x80], rax
jne 0x14003b96f
movzx ecx, word [rsp + 0x68]
jmp 0x14003b963
movzx r10d, r11w
movzx r8d, di
mov rcx, qword [r13 + r10*8]
cmp word [rcx + r8*2], dx
jge 0x14003b98c
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 0x14003b963
add rbx, 4
cmp qword [rsp + 0x70], rbx
jne 0x14003b879
mov rcx, r13
mov r14, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
call fcn.1400651a0
mov rcx, r12
call fcn.1400651a0
jmp 0x14003b6e1
test rsi, rsi
mov rax, rsi
jne 0x14003a97d
jmp 0x14003a985
movzx ebp, byte [rsp + 0x50]
jmp 0x14003a865
movzx ebp, byte [rsp + 0x40]
jmp 0x14003abc8
mov dword [rsp + 0x120], edx
mov edx, dword [rsp + 0x118]
xor eax, eax
jmp 0x14003ba6c
add rax, 1
sub edx, ecx
cmp rax, 0x64
je 0x14003ba82
movsx ecx, word [r15 + rax*2 + 0x2a718]
cmp ecx, edx
jl 0x14003ba60
mov dword [rsp + 0x118], eax
jmp 0x14003ba89
mov dword [rsp + 0x118], edx
mov rax, qword [rsp + 0x48]
mov rbx, qword [rax]
movsx edi, word [rbx + r14 + 0x12]
test di, di
jle 0x14003bab2
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 0x14003bb5a
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 0x14003bafa
mov byte [rdx], 1
add eax, 1
add rdx, 1
add r9, 0x28
cmp r8, rdx
jne 0x14003baec
test ax, ax
jle 0x14003bb5a
movsx edx, ax
mov ecx, 1
call fcn.140064c70
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 0x14003bb5a
lea r8, [rbx + 0x40]
xor eax, eax
mov r10d, esi
and r10d, dword [r8]
je 0x14003bb4e
cmp edx, 1
je 0x14003c0ff
sub edx, 1
add eax, 1
add r8, 0x28
cmp r9d, eax
jne 0x14003bb3a
add rbp, 4
cmp qword [rsp + 0xf8], rbp
je 0x14003bb71
movsx edi, word [rbx + 0x12]
jmp 0x14003bacd
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 0x14003cb80
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 0x14003bc2c
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 0x14003c10e
cmp byte [rdi + rbp], 0
jne 0x14003bc0b
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 0x14003cadb
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 0x14003c3a8
test r13d, 0x10000000
je 0x14003bd84
test di, di
je 0x14003bdb0
cmp di, 0x4e
je 0x14003bdb0
mov eax, 0x10000001
bt rax, r14
jb 0x14003bdb0
test r13b, 0x40
jne 0x14003c3c8
and esi, 0x400
je 0x14003c280
cmp word [rsp + 0x5c], di
jne 0x14003c280
cmp word [rsp + 0x5e], bx
jne 0x14003c280
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 0x14003bd48
mov rsi, qword [rsp + 0xd8]
add rdi, 1
add r15, 0x1d
mov r14, r12
add rsi, 0x7b4
cmp rdi, 0x4f
jne 0x14003bcf1
mov r14, qword [rsp + 0x48]
mov eax, 1
mov byte [rsp + 0x60], 1
test r13d, 0x8000
je 0x14003cab0
movzx edi, word [r14 + 0x34]
xor r10d, r10d
cmp word [rsp + 0x50], 0
mov word [rsp + 0x68], di
jle 0x14003c0ce
test al, al
je 0x14003c0ce
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 0x14003ca50
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 0x14003c791
mov ecx, dword [r14 + 0x20]
test ecx, ecx
jne 0x14003c714
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 0x14003bf4e
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 0x14003bf3d
cmp r9w, 0x4e
mov rcx, r10
setbe r11b
jmp 0x14003bf11
add edx, 1
add rcx, 1
cmp edx, r8d
je 0x14003bf3d
cmp dx, 0x1c
ja 0x14003bf05
test r11b, r11b
je 0x14003bf05
cmp byte [rcx], 0
je 0x14003bf2a
sub word [rsp + 0x50], 1
mov byte [rcx], 0
add edx, 1
mov byte [rcx - 0x8f3], 1
add rcx, 1
cmp edx, r8d
jne 0x14003bf11
mov edx, dword [rsp + 0x70]
add r9d, 1
add r10, 0x1d
cmp r9d, edx
jne 0x14003beeb
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 0x14003c601
xor ebp, ebp
cmp qword [rsp + 0x2c0], 0
je 0x14003c081
test al, 8
je 0x14003c081
and r8d, 1
je 0x14003c081
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 0x14003c039
cmp word [rbp + rdx*8 + 0x92], 0
je 0x14003c048
add rdx, 1
cmp rdx, 0x14
jne 0x14003c023
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 [0x140121580]
movzx edx, word [rdx + 2]
mov word [rbp + 0x12e], dx
jne 0x14003cd25
test eax, 0x1002
je 0x14003cc60
test al, 6
jne 0x14003cc76
test al, 0x20
jne 0x14003c9b8
cmp word [r14 + 0x32], 0
jne 0x14003c807
cmp word [rsp + 0x11c], r12w
setg dl
or dl, byte [rsp + 0x60]
je 0x14003c0bb
cmp word [rsp + 0x50], 0
jg 0x14003be57
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 0x14003cbc0
cmp r10w, ax
jge 0x14003bcc4
mov rbp, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x130]
jmp 0x14003bc0b
cdqe
mov byte [rsp + rax + 0x1a0], 0
jmp 0x14003bb5a
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 0x14003c1ad
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 0x14003c16c
add ebp, 1
add rsi, 0x44
cmp ebp, 0x1d
je 0x14003c19c
movzx eax, byte [rsi + 6]
cmp eax, edi
jne 0x14003c160
mov ecx, ebp
shl ecx, 0x10
or ecx, r14d
call fcn.1400199e0
test ah, 0xc
jne 0x14003c160
and dword [rsi], 0xfcffffff
add ebp, 1
mov byte [rsi + 6], 0
add rsi, 0x44
cmp ebp, 0x1d
jne 0x14003c16c
add r12d, 1
add r13, 0x7b4
cmp r12d, 0x4f
jne 0x14003c155
test bl, bl
je 0x14003c1f3
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rax + 0x230]
test rcx, rcx
je 0x14003c1ca
call fcn.140031490
mov rax, qword [0x140121040]
mov rdi, qword [rsp + 0xf0]
mov rdx, qword [rax]
mov rcx, rdi
call fcn.140031430
mov rax, qword [rsp + 0xe0]
mov qword [rax + 0x230], rdi
mov rcx, qword [rsp + 0x78]
call fcn.1400651a0
cmp qword [rsp + 0x2c8], 0
je 0x14003c232
movzx eax, word [rsp + 0xd2]
test ax, ax
jle 0x14003c232
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 0x14003c267
movzx eax, word [rsp + 0xec]
test ax, ax
jle 0x14003c267
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 0x14003a98f
mov rax, qword [rsp + 0x60]
cmp byte [rax + rbx], 0
jne 0x14003bdb0
test r13d, 0x6000000
je 0x14003c2aa
mov rax, qword [rsp + 0x98]
cmp byte [rax + rbx], 0
je 0x14003bdb0
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 0x14003c3f0
mov rsi, qword [0x1401213e0]
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 0x14003c311
add rsi, 4
cmp rsi, rdi
je 0x14003c382
movzx eax, word [rsi + 2]
movd xmm6, dword [rsi]
add eax, ebp
cmp ax, 0x1c
ja 0x14003c308
movzx edx, word [rsp + 0x70]
movzx eax, word [rsi]
add eax, edx
cmp ax, 0x4e
ja 0x14003c308
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 0x14003c308
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 0x14003c311
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 0x14003c3fd
mov ecx, dword [rsp + 0x68]
mov edx, ebx
call fcn.1400377a0
cmp ax, 1
jle 0x14003bd65
jmp 0x14003bdb0
cmp word [rsp + 0x5c], di
jne 0x14003bdb0
cmp word [rsp + 0x5e], bx
jne 0x14003bdb0
add word [rsp + 0x50], 1
mov eax, 1
jmp 0x14003bdb8
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + rdi*8]
movzx edx, word [rax + rbx*2]
cmp dx, word [rsp + 0xa0]
jg 0x14003bdb0
cmp dx, word [rsp + 0xd0]
jl 0x14003bdb0
test r13d, 0x200000
je 0x14003c4d2
mov rax, qword [rsp + 0xc8]
cmp byte [rax + rbx], 0
jne 0x14003bdb0
movzx eax, byte [rbp + 6]
test al, al
je 0x14003c44f
mov esi, dword [rsp + 0x124]
cmp eax, esi
jne 0x14003bdb0
mov ecx, dword [rsp + 0x80]
call fcn.140019980
test al, 1
je 0x14003bdb0
mov rsi, qword [0x1401213e0]
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 0x14003c4a9
cmp bx, 0x4e
jbe 0x14003c510
add rsi, 4
cmp rsi, rbp
jne 0x14003c491
mov rdi, r12
mov rbx, qword [rsp + 0x80]
mov rbp, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
jmp 0x14003bdb0
mov ecx, dword [rsp + 0x80]
call fcn.140019980
test al, 1
jne 0x14003bdb0
test r13d, 0x400000
je 0x14003c5c0
and r13d, 1
jne 0x14003c5d7
mov eax, dword [rbp]
test eax, 0x3000000
je 0x14003c3de
jmp 0x14003bdb0
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 0x14003c53f
cmp bx, word [rsp + 0x5c]
jne 0x14003c59a
cmp ax, word [rsp + 0x5e]
jne 0x14003c59a
test r13d, 0x400000
je 0x14003c4a9
shl r11d, 0x10
movzx ecx, bx
mov qword [rsp + 0x138], r10
or ecx, r11d
call fcn.140019980
test eax, 0x829c1
jne 0x14003c4a9
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 0x14003c4a9
mov rdi, r12
mov rbx, qword [rsp + 0x80]
mov rbp, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
jmp 0x14003c3de
mov rax, qword [rsp + 0xc8]
cmp byte [rax + rbx], 0
je 0x14003bdb0
jmp 0x14003c3de
mov ecx, dword [rsp + 0x80]
call fcn.140019980
test eax, 0x829c5
jne 0x14003bdb0
mov eax, dword [rbp]
test eax, 0x3600000
jne 0x14003bdb0
jmp 0x14003c500
cmp qword [rsp + 0x2c0], 0
je 0x14003c61a
test al, 8
je 0x14003c61a
and r8d, 1
jne 0x14003bfe8
movsx edx, word [r14 + 0x30]
mov r13d, 0x3e9
movzx ecx, word [r14 + 0x2e]
call fcn.140021830
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 0x14003c6d4
mov eax, dword [r14 + 0x40]
test eax, 0x40000
je 0x14003c660
test cl, 0x20
je 0x14003c6d4
test al, 0x10
movzx edx, word [rbp]
je 0x14003c66e
cmp dx, 2
je 0x14003c69b
test dx, 0x1fe
jne 0x14003c6a2
movsx rdx, word [rsp + 0xd2]
mov r11, rdx
mov qword [rsi + rdx*8 + 0x28d50], rbp
add r11d, 1
mov word [rsp + 0xd2], r11w
jmp 0x14003c002
cmp word [rbp + 0x38], 1
jg 0x14003c6d4
cmp word [rsp + 0xd2], 0
lea rdx, [rsi + 0x28d50]
jle 0x14003c675
mov r11, qword [rsp + 0x70]
mov r10d, dword [rbp]
lea r9, [rdx + r11]
jmp 0x14003c6cc
add rdx, 8
cmp rdx, r9
je 0x14003c675
mov r8, qword [rdx]
cmp dword [r8], r10d
jne 0x14003c6c3
mov rcx, rbp
call fcn.140031490
movsx edx, word [r14 + 0x30]
movzx ecx, word [r14 + 0x2e]
call fcn.140021830
sub r13d, 1
mov rbp, rax
jne 0x14003c644
mov ecx, dword [rax + 4]
mov rdx, qword [rsp + 0x100]
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + rdx*8 + 0x40]
jmp 0x14003c675
test ah, 1
jne 0x14003c7db
mov edx, ecx
mov r8d, eax
shl rdx, 8
add rdx, qword [0x140121660]
and r8d, 0x200
mov edx, dword [rdx + 0x2c]
and edx, 0x829c1
or edx, r8d
je 0x14003c7db
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.1400387d0
test ax, ax
mov rax, qword [rsp + 0xc0]
je 0x14003c7c9
mov rdi, qword [rsp + 0x100]
mov eax, dword [rax + rdi*8 + 0x40]
jmp 0x14003c09d
shl rdx, 7
shr eax, 8
xor r9d, r9d
mov r8, rdx
add r8, qword [0x140120fa0]
xor eax, 1
mov edx, ebx
and eax, 1
mov ecx, edi
mov dword [rsp + 0x20], eax
call fcn.140038eb0
test al, al
mov eax, dword [r14 + 0x40]
jne 0x14003be95
jmp 0x14003c09d
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 0x14003bea1
movzx edi, di
shl ebx, 0x10
or ebx, edi
mov ecx, ebx
call fcn.14000c3c0
test rax, rax
mov rcx, rax
je 0x14003c828
mov edx, 1
call fcn.140055fd0
movsx ecx, word [r14 + 0x32]
mov r8d, 1
mov edx, 1
call fcn.1400101a0
test rax, rax
je 0x14003c8b6
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 0x14003c8b6
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 [0x1401213c0]
lea rbx, [rsp + 0x140]
mov rcx, qword [rsp + 0xf8]
mov rdx, qword [rax]
call fcn.14000b6e0
movzx ebp, word [rsp + 0xec]
jmp 0x14003c8fb
mov rcx, qword [rsp + 0xf8]
call fcn.14000b730
mov rdi, rax
mov eax, dword [rax + 0x210]
test ah, 0x10
jne 0x14003c929
movdqa xmm4, xmmword [rsp + 0x160]
mov rcx, rbx
movaps xmmword [rsp + 0x140], xmm4
call fcn.14000b720
test al, al
jne 0x14003c8e0
mov eax, dword [r14 + 0x40]
mov word [rsp + 0xec], bp
jmp 0x14003c09d
test al, 0xc0
jne 0x14003c95f
test r15, r15
je 0x14003c9f9
cmp r15, rdi
je 0x14003c9f9
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 0x14003c98a
mov dword [rdi + 0x10c], 0
test ah, 0x40
je 0x14003c99d
mov rdx, qword [0x1400eb180]
mov qword [rdi + 0x10c], rdx
test eax, 0x80000
jne 0x14003ca01
movzx eax, word [rsp + 0xee]
mov word [rdi + 0x216], ax
jmp 0x14003c8fb
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 0x14003ca28
or dword [rax + 0x210], 0x1000
cmp word [r14 + 0x32], 0
je 0x14003c883
jmp 0x14003c80f
mov r15, rdi
jmp 0x14003c95f
mov rcx, rdi
call fcn.140015370
test byte [r14 + 0x41], 0x20
jne 0x14003c9a4
cmp dword [rdi + 0x10c], 4
je 0x14003c9a4
mov dword [rdi + 0x10c], 1
jmp 0x14003c9a4
mov rax, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x100]
cmp word [rax + rdi*8 + 0x32], 0
je 0x14003c8b6
jmp 0x14003c80f
movsx edx, word [rsp + 0x50]
mov ecx, 1
xor edi, edi
call fcn.140064c70
movsxd r13, edi
xor ebx, ebx
imul rdx, r13, 0x1d
add rdx, rsi
jmp 0x14003ca7c
sub eax, 1
add rbx, 1
cmp rbx, 0x1d
je 0x14003ca94
cmp byte [rdx + rbx + 0x11e6], 0
je 0x14003ca72
cmp eax, 1
jne 0x14003ca6f
mov eax, dword [r14 + 0x40]
jmp 0x14003be71
add edi, 1
cmp edi, 0x4e
jle 0x14003ca61
or ebx, 0xffffffff
or edi, 0xffffffff
or r13, 0xffffffffffffffff
jmp 0x14003ca8b
movsx edx, word [r14 + 0x2a]
movsx ecx, word [r14 + 0x28]
call fcn.140064c70
mov r13d, dword [r14 + 0x40]
mov byte [rsp + 0x60], 0
test ax, ax
mov word [rsp + 0x11c], ax
setg al
jmp 0x14003be1b
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 0x14003cc21
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 0x14003bc8a
test byte [rbx + 0x19], 0x20
je 0x14003cc48
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 0x14003c13e
cmp r10w, ax
mov rbp, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x130]
jge 0x14003bc0b
mov r15, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x110]
call fcn.140035370
lea rdx, [r15 + 0x299d0]
lea rcx, [r15 + 0x28d50]
call fcn.140036030
mov rcx, qword [rsp + 0x78]
call fcn.1400651a0
mov rcx, r15
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x14003a98d
mov r8d, dword [rsp + 0xe8]
mov dword [rsp + 0x20], 3
mov r9d, 0x4f0000
mov edx, dword [rsp + 0xd4]
call fcn.140008210
jmp 0x14003cb43
mov rcx, qword [rsp + 0x78]
call fcn.1400651a0
jmp 0x14003c267
mov edx, ecx
mov rcx, rbp
call fcn.1400256f0
mov eax, dword [r14 + 0x40]
test al, 6
je 0x14003c089
test rbp, rbp
movzx edx, byte [rsp + 0x11f]
mov r13d, 0xa
setne byte [rsp + 0x70]
jmp 0x14003ccac
test al, 4
jne 0x14003ce1b
test dl, dl
jne 0x14003cd74
sub r13d, 1
je 0x14003cd6c
mov eax, dword [r14 + 0x40]
test al, 2
je 0x14003cc8e
cmp byte [rsp + 0x70], 0
je 0x14003cc8e
mov rax, qword [0x140121040]
mov rcx, rbp
mov rdx, qword [rax]
call fcn.140031430
mov rax, qword [0x140121430]
mov rcx, rbp
mov rdx, qword [rax]
call fcn.140031430
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.14003a580
mov edx, eax
jmp 0x14003cc96
xor edx, edx
cmp word [rbp + rdx*8 + 0x8e], 0
jne 0x14003cd3d
cmp word [rbp + rdx*8 + 0x92], 0
je 0x14003cd4c
add rdx, 1
cmp rdx, 0x14
jne 0x14003cd27
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 0x14003c076
mov r15, rsi
jmp 0x14003cbe2
mov byte [rsp + 0x11f], dl
lea rax, [rsi + 0x29390]
movzx edx, word [rsp + 0xd2]
lea rcx, [rsi + 0x299d0]
jmp 0x14003cdb8
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 0x14003cdc0
mov r8, qword [rax]
test r8, r8
jne 0x14003cd98
mov word [rsp + 0xd2], dx
lea rax, [rsi + 0x2a010]
movzx edx, word [rsp + 0xec]
lea rcx, [rsi + 0x2a650]
jmp 0x14003ce00
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 0x14003ce08
mov r8, qword [rax]
test r8, r8
jne 0x14003cde0
mov eax, dword [r14 + 0x40]
mov word [rsp + 0xec], dx
xor ebp, ebp
jmp 0x14003c089
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.14003a580
mov edx, eax
jmp 0x14003cc96