Function at 0x14003e410
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x248]
sub rsp, 0x310
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
mov rax, qword [0x140190040]
xor rax, rsp
mov qword [rbp + 0x160], rax
mov r15, r8
mov qword [rbp - 0x60], r8
mov rdi, rcx
mov r14d, dword [rbp + 0x278]
mov dword [rbp], 0x80
mov rcx, qword [0x140190fd0]
mov rax, qword [rcx + 0x4018]
mov byte [rax + 0xc0], 1
mov r12, qword [rcx + 0x4018]
mov qword [rbp - 8], r12
cmp byte [r12 + 0xc3], 0
jne 0x14003ea8f
mov rcx, rdi
call fcn.140032690
movss xmm0, dword [0x1401900b8]
mulss xmm0, dword [0x14018597c]
mov rbx, qword [0x140190fd0]
movss xmm1, dword [rbx + 0x3938]
subss xmm1, xmm0
mov rax, qword [rbx + 0x4018]
movss xmm5, dword [rax + 0x114]
subss xmm5, dword [rax + 0x2c]
movss xmm4, dword [rax + 0x110]
movss xmm3, dword [rax + 0x28]
addss xmm5, dword [rax + 0x90]
movss xmm2, dword [rax + 0x8c]
subss xmm5, xmm1
mov byte [rax + 0xc0], 1
mov rax, qword [rbx + 0x4018]
movss xmm0, dword [rax + 0x2c]
subss xmm0, dword [rax + 0x90]
addss xmm5, xmm0
subss xmm4, xmm3
addss xmm4, xmm2
xorps xmm13, xmm13
subss xmm4, xmm13
movss xmm0, dword [rax + 0x28]
subss xmm0, dword [rax + 0x8c]
addss xmm4, xmm0
movss dword [rax + 0x110], xmm4
movss dword [rax + 0x114], xmm5
mov byte [rax + 0x151], 1
movss xmm0, dword [rbx + 0x3d50]
xor r13d, r13d
movss xmm15, dword [0x140185a90]
movss dword [rbp - 0x10], xmm15
movss xmm9, dword [0x140185a84]
test r15, r15
je 0x14003e5d7
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm15
movaps xmm3, xmm9
movaps xmm2, xmm0
lea rdx, [rbp - 0x78]
mov rcx, qword [rbx + 0x3d48]
call fcn.14002e700
movss xmm0, dword [rbp - 0x74]
mov rsi, qword [rbp + 0x270]
movss xmm7, dword [rsi + 4]
subss xmm7, xmm0
movss xmm0, dword [rbx + 0x3d50]
test r15, r15
je 0x14003e621
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm15
movaps xmm3, xmm9
movaps xmm2, xmm0
lea rdx, [rbp - 0x78]
mov rcx, qword [rbx + 0x3d48]
call fcn.14002e700
movss xmm0, dword [rbp - 0x74]
mulss xmm7, dword [0x140185904]
movss xmm6, dword [rsi + 4]
subss xmm6, xmm0
mulss xmm6, dword [0x140185904]
lea rcx, [rbx + 0x4aa0]
movss xmm1, dword [rbx + 0x3924]
movss xmm0, dword [rbx + 0x3928]
mov dword [rbp - 0x78], 0xb
movss dword [rbp - 0x74], xmm1
movss dword [rbp - 0x70], xmm0
lea rdx, [rbp - 0x78]
call fcn.140026350
movss dword [rbx + 0x3924], xmm6
movss dword [rbx + 0x3928], xmm7
mov rbx, qword [0x140190fd0]
lea rcx, [rbx + 0x4aa0]
movss xmm1, dword [rbx + 0x3934]
movss xmm0, dword [rbx + 0x3938]
mov dword [rbp - 0x78], 0xe
movss dword [rbp - 0x74], xmm1
movss dword [rbp - 0x70], xmm0
lea rdx, [rbp - 0x78]
call fcn.140026350
mov qword [rbx + 0x3934], r13
mov r15, qword [0x140190fd0]
mov qword [rsp + 0x78], r15
mov ebx, r14d
shr ebx, 0x1a
and bl, 1
mov dword [rsp + 0x70], ebx
test bl, bl
je 0x14003e6dc
call fcn.14001e250
movsxd r8, dword [r12 + 0x100]
mov rax, qword [r12 + 0x108]
mov r8d, dword [rax + r8*4 - 4]
xor edx, edx
mov rcx, rdi
call fcn.14000d060
mov r13d, eax
mov dword [rsp + 0x74], eax
mov rcx, qword [r12]
cmp dword [rcx + 0x4064], eax
jne 0x14003e71d
mov r8, rdi
mov edx, 0xb
mov ecx, eax
call fcn.1400259a0
mov r8, qword [0x140190fd0]
mov rcx, rdi
cmp rdi, 0xffffffffffffffff
jae 0x14003e74d
nop dword [rax]
movzx edx, byte [rcx]
test dl, dl
je 0x14003e74d
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x14003e744
cmp byte [rax], dl
je 0x14003e74d
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x14003e730
movss xmm0, dword [r8 + 0x3d50]
cmp rdi, rcx
je 0x14003e788
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdi
movss dword [rsp + 0x20], xmm15
movaps xmm3, xmm9
movaps xmm2, xmm0
lea rdx, [rbp - 0x78]
mov rcx, qword [r8 + 0x3d48]
call fcn.14002e700
movss xmm0, dword [rbp - 0x74]
movss xmm1, dword [0x140185998]
test bl, bl
je 0x14003e7a1
movss xmm0, dword [r15 + 0x3d50]
mulss xmm0, xmm1
movss xmm3, dword [r15 + 0x3928]
addss xmm3, xmm3
addss xmm3, xmm0
call fcn.14001e0c0
movaps xmm2, xmm0
mov rdx, qword [rsi]
lea rcx, [rbp - 0x78]
call fcn.14001e140
movss xmm2, dword [r12 + 0x114]
movss dword [rbp - 0x30], xmm2
movss xmm14, dword [rbp - 0x74]
movss dword [rbp - 0x14], xmm14
movaps xmm12, xmm14
addss xmm12, xmm2
movss xmm7, dword [r12 + 0x110]
movss dword [rbp - 0x20], xmm7
movss xmm6, dword [rbp - 0x78]
movss dword [rbp - 0x18], xmm6
movaps xmm10, xmm6
addss xmm10, xmm7
movss dword [rbp + 0xf8], xmm7
movss dword [rbp + 0xfc], xmm2
movss dword [rbp + 0x100], xmm10
movss dword [rbp + 0x104], xmm12
movaps xmm8, xmm7
movss dword [rbp - 0x24], xmm7
movss dword [rbp - 0x40], xmm7
movaps xmm11, xmm2
movss dword [rbp - 0x3c], xmm11
movss dword [rbp - 0x38], xmm10
movss dword [rbp - 0x34], xmm12
mov esi, 1
mov ecx, esi
call fcn.14000dc80
mov rbx, r12
mov qword [rbp - 0x78], rbx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x110], xmm0
movaps xmm1, xmm12
subss xmm1, xmm2
movaps xmm0, xmm10
subss xmm0, xmm7
cmp byte [rsp + 0x70], al
je 0x14003eb7a
movss xmm6, dword [r12 + 0x110]
movss xmm7, dword [r12 + 0x114]
movss dword [rbp - 0x78], xmm0
movss dword [rbp - 0x74], xmm1
movss xmm1, dword [r15 + 0x3928]
lea rcx, [rbp - 0x78]
call fcn.14001dea0
mov r9d, 0x400
lea r8, [rbp + 0xf8]
mov edx, r13d
lea rcx, [rbp + 0xf8]
call fcn.14001dbd0
test al, al
je 0x14003ea8a
movups xmm0, xmmword [r15 + 0x49c8]
movaps xmmword [rbp + 0x110], xmm0
movss dword [r12 + 0x110], xmm6
movss dword [r12 + 0x114], xmm7
mov eax, dword [r15 + 0x4b50]
mov esi, eax
cmp eax, r13d
jne 0x14003e92e
xor eax, eax
test byte [r15 + 0x4b5c], 8
je 0x14003e930
bt r14d, 0xa
jae 0x14003e930
mov dword [r15 + 0x4b50], eax
mov esi, eax
jmp 0x14003e930
xor eax, eax
cmp dword [r15 + 0x407c], r13d
jne 0x14003e940
mov dword [r15 + 0x4b50], eax
mov rbx, qword [0x140190fd0]
mov dword [rbp + 8], 4
movups xmm0, xmmword [rbx + 0x3a14]
movups xmmword [rbp + 0xc], xmm0
lea rcx, [rbx + 0x4a90]
lea rdx, [rbp + 8]
call fcn.140026490
cmp dword [rbx + 0x4a8c], 4
je 0x14003e981
movups xmm0, xmmword [r15 + 0x3a54]
movups xmmword [rbx + 0x3a14], xmm0
movss xmm6, dword [r15 + 0x392c]
mov rbx, qword [0x140190fd0]
lea rcx, [rbx + 0x4aa0]
movss xmm0, dword [rbx + 0x3914]
mov dword [rbp - 0x78], 7
movss dword [rbp - 0x74], xmm0
lea rdx, [rbp - 0x78]
call fcn.140026350
movss dword [rbx + 0x3914], xmm6
movss xmm6, dword [r15 + 0x3930]
mov rbx, qword [0x140190fd0]
lea rcx, [rbx + 0x4aa0]
movss xmm0, dword [rbx + 0x3918]
mov dword [rbp - 0x78], 8
movss dword [rbp - 0x74], xmm0
lea rdx, [rbp - 0x78]
call fcn.140026350
movss dword [rbx + 0x3918], xmm6
movaps xmm1, xmm12
subss xmm1, dword [rbp - 0x30]
movaps xmm0, xmm10
subss xmm0, xmm8
movss dword [rbp - 0x78], xmm0
movss dword [rbp - 0x74], xmm1
mov dword [rsp + 0x20], 4
mov r9d, 1
lea r8, [rbp - 0x78]
mov edx, r13d
mov rcx, rdi
call fcn.140014420
movzx ebx, al
mov dword [r15 + 0x4b50], esi
mov ecx, 2
call fcn.14000dc80
mov r8, qword [0x140190fd0]
movsxd rcx, dword [r8 + 0x4a90]
cmp ecx, 1
jl 0x14003ea81
lea rdx, [rcx + rcx*4]
mov rcx, qword [r8 + 0x4a98]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [r8 + rax*8 + 0x39d4], xmm0
dec dword [r8 + 0x4a90]
test bl, bl
jne 0x14003eaf3
call fcn.140014830
call fcn.14001e390
xor al, al
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.1400593d0
lea r11, [rsp + 0x310]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rbx, qword [r15 + 0x4018]
mov qword [rbp - 0x78], rbx
movsx ecx, word [rbx + 0x16e]
mov eax, dword [rbx + 0x168]
bts ecx, eax
mov word [rbx + 0x16e], cx
movss xmm0, dword [r15 + 0x3924]
addss xmm0, dword [rbx + 0x110]
movss dword [rbx + 0x110], xmm0
movss xmm1, dword [r15 + 0x3928]
addss xmm1, dword [rbx + 0x114]
movss dword [rbx + 0x114], xmm1
movss xmm6, dword [rbp - 0x18]
subss xmm6, dword [rbx + 0xb4]
movss dword [rbp - 0x18], xmm6
movss xmm0, dword [rbp + 0xfc]
movss dword [rbp - 0x30], xmm0
movss xmm7, dword [rbp + 0xf8]
movss dword [rbp - 0x20], xmm7
mov esi, 1
jmp 0x14003ebdb
movss dword [rbp - 0x2c], xmm0
movss dword [rbp - 0x28], xmm1
movss xmm1, dword [r15 + 0x3928]
lea rcx, [rbp - 0x2c]
call fcn.14001dea0
bt r14d, 0x1c
jb 0x14003ebdb
mov r9d, 0x400
lea r8, [rbp + 0xf8]
mov edx, r13d
lea rcx, [rbp + 0xf8]
call fcn.14001dbd0
test al, al
je 0x14003ea8f
movss xmm0, dword [rbp + 0xfc]
movss dword [rbp - 0x30], xmm0
movss xmm0, dword [rbp + 0xf8]
movss dword [rbp - 0x20], xmm0
mov r8d, dword [r15 + 0x49cc]
mov edx, r13d
lea rcx, [rbp - 0x40]
call fcn.140010fb0
movzx edx, al
mov byte [rsp + 0x6c], al
test al, al
je 0x14003ec00
mov dword [r15 + 0x4ed8], esi
mov rcx, qword [0x140190fd0]
test r13d, r13d
je 0x14003ec1e
cmp dword [rcx + 0x4ef0], r13d
jne 0x14003ec1e
lea r12, [rcx + 0x4ee8]
jmp 0x14003ec21
xor r12d, r12d
mov ecx, r14d
bts ecx, 0xe
test byte [r15 + 0x49cc], 0x80
cmove ecx, r14d
mov dword [rbp - 0x64], ecx
mov eax, ecx
shr eax, 0xe
and al, 1
mov dword [rsp + 0x68], eax
mov eax, ecx
shr eax, 0xf
and al, 1
mov dword [rbp - 0x54], eax
mov eax, ecx
shr eax, 0x10
not al
and al, 1
mov dword [rbp - 0x1c], eax
mov eax, ecx
shr eax, 0x12
and al, 1
mov dword [rbp - 0x7c], eax
mov eax, dword [r15 + 0x407c]
cmp eax, r13d
je 0x14003ec92
cmp dword [r15 + 0x4b50], r13d
jne 0x14003ec92
test byte [r15 + 0x4b5c], 1
jne 0x14003ec8b
cmp dword [r15 + 0x4b7c], 2
jne 0x14003ec92
mov byte [rsp + 0x51], 1
jmp 0x14003ec97
mov byte [rsp + 0x51], 0
test dl, dl
je 0x14003ecaa
cmp byte [r15 + 0x2b18], 0
je 0x14003ecaa
mov sil, 1
jmp 0x14003ecad
xor sil, sil
mov byte [rsp + 0x53], sil
mov r13d, dword [rsp + 0x70]
test r13b, r13b
je 0x14003ed18
test r12, r12
je 0x14003ed18
test eax, eax
jne 0x14003ed18
movsxd r8, dword [rbx + 0x100]
mov rax, qword [rbx + 0x108]
mov r8d, dword [rax + r8*4 - 4]
xor edx, edx
lea rcx, str.SCROLLY
call fcn.14000d060
mov ebx, eax
mov r14, qword [rbp - 0x78]
mov rcx, qword [r14]
cmp dword [rcx + 0x4064], eax
jne 0x14003ed0a
lea r8, str.SCROLLY
mov edx, 0xb
mov ecx, eax
call fcn.1400259a0
cmp dword [r15 + 0x40ac], ebx
jne 0x14003ed1c
mov dil, 1
jmp 0x14003ed29
mov r14, qword [rbp - 0x78]
xor dil, dil
test r13b, r13b
je 0x14003ed90
test r12, r12
je 0x14003ed90
movsxd r8, dword [r14 + 0x100]
mov rax, qword [r14 + 0x108]
mov r8d, dword [rax + r8*4 - 4]
xor edx, edx
lea rcx, str.SCROLLY
call fcn.14000d060
mov ebx, eax
mov rcx, qword [r14]
cmp dword [rcx + 0x4064], eax
jne 0x14003ed6a
lea r8, str.SCROLLY
mov edx, 0xb
mov ecx, eax
call fcn.1400259a0
cmp dword [r15 + 0x407c], ebx
jne 0x14003ed90
mov r15b, 1
mov byte [rsp + 0x52], r15b
mov byte [rsp + 0x5c], 0
mov byte [rsp + 0x58], 0
movss xmm7, dword [r14 + 0x90]
jmp 0x14003edbb
mov byte [rsp + 0x5c], 0
mov byte [rsp + 0x58], 0
xor r15b, r15b
mov byte [rsp + 0x52], r15b
test r13b, r13b
je 0x14003edb2
movss xmm7, dword [r14 + 0x90]
jmp 0x14003edbb
movaps xmm7, xmm9
mov byte [rsp + 0x52], r15b
test r12, r12
je 0x14003edd0
cmp byte [r12 + 0x1658], 0
je 0x14003edd0
mov r13b, 1
jmp 0x14003edd8
xor r13b, r13b
test r12, r12
je 0x14003edeb
movzx eax, byte [rsp + 0x70]
xor al, 1
cmp byte [r12 + 0x6b], al
je 0x14003edeb
mov r14b, 1
jmp 0x14003edee
xor r14b, r14b
test sil, sil
jne 0x14003ee15
test dil, dil
jne 0x14003ee15
cmp byte [rsp + 0x51], dil
jne 0x14003ee15
mov byte [rsp + 0x54], dil
test r15b, r15b
jne 0x14003ee1a
mov byte [rsp + 0x64], r15b
mov rax, qword [rsp + 0x78]
jmp 0x14003ee30
mov byte [rsp + 0x54], 1
mov byte [rsp + 0x64], 1
mov rax, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x74]
cmp dword [rax + 0x407c], ecx
jne 0x14003ee3e
test r14b, r14b
jne 0x14003ee3e
test r13b, r13b
je 0x14003f0ac
lea r12, [rax + 0x4ee8]
mov byte [r12 + 0x1658], 0
mov ecx, dword [r12 + 8]
call fcn.140034430
mov rbx, 0xffffffffffffffff
mov rdi, qword [rbp - 0x60]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14003ee63
test r13b, r13b
jne 0x14003eebb
lea edi, [rbx + 1]
mov ecx, dword [r12 + 0x3c]
cmp edi, ecx
jle 0x14003eea2
test ecx, ecx
je 0x14003ee8c
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x14003ee91
mov eax, 8
mov edx, edi
cmp eax, edi
cmovg edx, eax
lea rcx, [r12 + 0x38]
call fcn.140026b30
mov dword [r12 + 0x38], edi
movsxd r8, edi
mov rdi, qword [rbp - 0x60]
mov rdx, rdi
mov rcx, qword [r12 + 0x40]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [rsp + 0x74]
cmp dword [r12 + 8], esi
jne 0x14003eef6
test r14b, r14b
jne 0x14003eef6
test r13b, r13b
jne 0x14003eef6
mov r15b, 1
cmp dword [r12 + 0x10], ebx
jne 0x14003eef6
cmp byte [r12 + 0x48], r13b
je 0x14003eef9
movsxd r8, ebx
mov rdx, rdi
mov rcx, qword [r12 + 0x30]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
je 0x14003eef9
xor r15b, r15b
mov dword [r12 + 8], esi
mov ecx, dword [r12 + 0x1c]
cmp ecx, 0x81
jge 0x14003ef33
test ecx, ecx
je 0x14003ef1a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x14003ef1f
mov eax, 8
mov edx, 0x81
cmp eax, edx
cmovg edx, eax
lea rcx, [r12 + 0x18]
call fcn.1400271e0
mov dword [r12 + 0x18], 0x81
mov ecx, dword [r12 + 0x2c]
test ecx, ecx
jns 0x14003ef5f
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor edx, edx
test eax, eax
cmovg edx, eax
lea rcx, [r12 + 0x28]
call fcn.140026b30
xor edx, edx
mov dword [r12 + 0x28], edx
mov byte [r12 + 0x48], dl
mov r14, qword [r12 + 0x20]
mov rbx, r14
lea rsi, [r14 + 0x1fc]
cmp r14, rsi
jae 0x14003efaa
nop
cmp byte [rdi], 0
je 0x14003efa8
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x2c]
call fcn.14000d460
movsxd rcx, eax
add rdi, rcx
mov eax, dword [rbp - 0x2c]
mov dword [rbx], eax
add rbx, 4
cmp rbx, rsi
jb 0x14003ef80
xor edx, edx
mov dword [rbx], edx
sub rbx, r14
sar rbx, 2
mov dword [r12 + 0xc], ebx
mov r9, qword [rbp - 0x60]
sub edi, r9d
mov dword [r12 + 0x10], edi
test r15b, r15b
je 0x14003f003
mov ecx, ebx
cmp dword [r12 + 0x54], ebx
cmovl ecx, dword [r12 + 0x54]
mov dword [r12 + 0x54], ecx
mov ecx, ebx
cmp dword [r12 + 0x58], ebx
cmovl ecx, dword [r12 + 0x58]
mov dword [r12 + 0x58], ecx
cmp dword [r12 + 0x5c], ebx
cmovl ebx, dword [r12 + 0x5c]
mov dword [r12 + 0x5c], ebx
mov ecx, dword [rsp + 0x70]
jmp 0x14003f059
mov qword [r12 + 0x50], 0
mov qword [r12 + 0x1640], 0x630000
mov dword [r12 + 0x1648], 0x3e7
mov qword [r12 + 0x58], 0
mov word [r12 + 0x69], 1
mov dword [r12 + 0x70], edx
mov byte [r12 + 0x68], 0
mov ecx, dword [rsp + 0x70]
movzx eax, cl
xor al, 1
mov byte [r12 + 0x6b], al
mov byte [r12 + 0x60], 0
mov dword [r12 + 0x64], edx
test r13b, r13b
je 0x14003f237
mov edx, dword [r12 + 0xc]
mov eax, dword [r12 + 0x1660]
mov ecx, edx
cmp eax, edx
cmovl ecx, eax
mov dword [r12 + 0x54], ecx
mov eax, dword [r12 + 0x165c]
cmp eax, edx
cmovl edx, eax
mov dword [r12 + 0x58], edx
mov dword [r12 + 0x5c], ecx
movzx esi, byte [rsp + 0x53]
movzx r15d, byte [rsp + 0x52]
test dword [rbp - 0x64], 0x2000
je 0x14003f0ac
mov byte [r12 + 0x60], 1
mov rdi, qword [rsp + 0x78]
movzx r14d, byte [rdi + 0x59]
mov byte [rbp - 0x58], r14b
mov ecx, dword [rsp + 0x74]
movzx ebx, byte [rsp + 0x54]
cmp dword [rdi + 0x407c], ecx
je 0x14003f101
test bl, bl
je 0x14003f0f5
mov r13, qword [rbp - 8]
mov rdx, r13
call fcn.140010bc0
mov rdx, r13
mov ecx, dword [rsp + 0x74]
call fcn.14001ffe0
xor edx, edx
mov rcx, r13
call fcn.14001a300
mov ecx, dword [rsp + 0x74]
cmp dword [rdi + 0x407c], ecx
jne 0x14003f29b
test sil, sil
je 0x14003f122
mov rax, qword [0x140190fd0]
mov dword [rax + 0x47ac], ecx
mov dword [rax + 0x47a8], ecx
mov word [rax + 0x47b0], 0
mov eax, dword [rdi + 0x4988]
or eax, 3
mov dword [rdi + 0x4988], eax
mov edx, dword [rsp + 0x70]
test dl, dl
jne 0x14003f13f
test byte [rbp - 0x64], 0x80
je 0x14003f148
or eax, 0xc
mov dword [rdi + 0x4988], eax
mov rax, qword [0x140190fd0]
mov dword [rax + 0x4194], ecx
mov dword [rax + 0x4190], ecx
mov word [rax + 0x4198], 0
mov dword [rax + 0x465c], ecx
mov dword [rax + 0x4658], ecx
mov word [rax + 0x4660], 0
mov dword [rax + 0x414c], ecx
mov dword [rax + 0x4148], ecx
mov word [rax + 0x4150], 0
mov dword [rax + 0x4158], ecx
mov dword [rax + 0x4154], ecx
mov word [rax + 0x415c], 0
test dl, dl
je 0x14003f1d1
mov dword [rax + 0x4134], ecx
mov dword [rax + 0x4130], ecx
mov word [rax + 0x4138], 0
mov dword [rax + 0x4140], ecx
mov dword [rax + 0x413c], ecx
mov word [rax + 0x4144], 0
test r14b, r14b
je 0x14003f1eb
mov dword [rax + 0x4818], ecx
mov dword [rax + 0x4814], ecx
mov word [rax + 0x481c], 0
cmp dword [rdi + 0x407c], ecx
jne 0x14003f29b
test r12, r12
jne 0x14003f209
xor edx, edx
xor ecx, ecx
call fcn.140010bc0
mov ecx, dword [rsp + 0x74]
cmp dword [rdi + 0x407c], ecx
jne 0x14003f29b
cmp byte [rdi + 0x2b18], 0
je 0x14003f2a5
cmp byte [rsp + 0x64], 0
jne 0x14003f2a5
test bl, bl
jne 0x14003f2a5
mov byte [rsp + 0x5c], 1
mov r8b, 1
jmp 0x14003f2ad
test cl, cl
jne 0x14003f092
test byte [rbp - 0x64], 0x10
mov eax, dword [rsp + 0x58]
movzx eax, al
mov edx, 1
cmovne eax, edx
mov dword [rsp + 0x58], eax
mov rcx, qword [rsp + 0x78]
cmp byte [rsp + 0x51], 0
je 0x14003f277
test r15b, r15b
je 0x14003f270
test byte [rcx + 0x4b5c], 4
jne 0x14003f277
movzx eax, dl
mov dword [rsp + 0x58], eax
movzx esi, byte [rsp + 0x53]
test sil, sil
je 0x14003f097
movzx eax, al
cmp byte [rcx + 0x114], 0
cmovne eax, edx
mov byte [rsp + 0x58], al
jmp 0x14003f097
test r12, r12
je 0x14003f2aa
test r15b, r15b
je 0x14003f2aa
mov r8b, 1
jmp 0x14003f2ad
xor r8b, r8b
mov byte [rsp + 0x50], r8b
mov r13d, dword [rsp + 0x58]
test r12, r12
je 0x14003f2d6
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
jne 0x14003f2cd
test r13b, r13b
je 0x14003f2d6
test r8b, r8b
je 0x14003f2d6
mov dl, 1
jmp 0x14003f2d8
xor dl, dl
mov dword [rsp + 0x60], edx
movzx r15d, dl
mov byte [rsp + 0x53], 0
mov byte [rsp + 0x64], 0
mov eax, dword [rsp + 0x68]
test al, al
je 0x14003f3f9
test r12, r12
je 0x14003f3f9
test r8b, r8b
jne 0x14003f30c
test dl, dl
je 0x14003f402
mov ecx, dword [r12 + 0x1c]
cmp ecx, 0x81
jge 0x14003f341
test ecx, ecx
je 0x14003f328
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x14003f32d
mov eax, 8
mov edx, 0x81
cmp eax, edx
cmovg edx, eax
lea rcx, [r12 + 0x18]
call fcn.1400271e0
mov dword [r12 + 0x18], 0x81
mov rax, qword [rbp - 0x60]
mov rdi, rax
mov r14, qword [r12 + 0x20]
mov rbx, r14
lea rsi, [r14 + 0x200]
cmp r14, rsi
jae 0x14003f391
cmp byte [rdi], 0
je 0x14003f38d
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x2c]
call fcn.14000d460
movsxd rcx, eax
add rdi, rcx
mov eax, dword [rbp - 0x2c]
mov dword [rbx], eax
add rbx, 4
cmp rbx, rsi
jb 0x14003f365
mov rax, qword [rbp - 0x60]
xor edx, edx
mov dword [rbx], edx
sub rbx, r14
sar rbx, 2
mov dword [r12 + 0xc], ebx
sub edi, eax
mov dword [r12 + 0x10], edi
mov ecx, ebx
cmp dword [r12 + 0x54], ebx
cmovl ecx, dword [r12 + 0x54]
mov dword [r12 + 0x54], ecx
mov ecx, ebx
cmp dword [r12 + 0x58], ebx
cmovl ecx, dword [r12 + 0x58]
mov dword [r12 + 0x58], ecx
cmp dword [r12 + 0x5c], ebx
cmovl ebx, dword [r12 + 0x5c]
mov dword [r12 + 0x5c], ebx
cmp ecx, ebx
cmovne edx, r15d
mov dword [rsp + 0x60], edx
movzx r14d, byte [rbp - 0x58]
mov ecx, dword [rsp + 0x74]
movzx r8d, byte [rsp + 0x50]
mov eax, dword [rsp + 0x68]
test r8b, r8b
jne 0x14003f412
test dl, dl
jne 0x14003f412
mov r15, qword [rsp + 0x78]
cmp dword [r15 + 0x407c], ecx
jne 0x14003f42b
jmp 0x14003f417
mov r15, qword [rsp + 0x78]
test al, al
jne 0x14003f42b
test r12, r12
je 0x14003f42b
cmp byte [r12 + 0x48], al
mov byte [rbp - 0x80], 1
jne 0x14003f42f
mov byte [rbp - 0x80], 0
cmp byte [rbp - 0x54], 0
je 0x14003f4c0
mov rdx, qword [r15 + 0x3d48]
cmp dword [rdx + 0x18], 0x2a
ja 0x14003f44c
mov r8, qword [rdx + 0x38]
jmp 0x14003f46d
mov rax, qword [rdx + 0x20]
mov ecx, dword [rax + 0xa8]
cmp ecx, 0xffffffff
jne 0x14003f461
mov r8, qword [rdx + 0x38]
jmp 0x14003f46d
lea rcx, [rcx + rcx*4]
mov rax, qword [rdx + 0x30]
lea r8, [rax + rcx*8]
lea rcx, [r15 + 0x6568]
mov eax, dword [rdx + 0x14]
mov dword [rcx + 0x14], eax
mov rax, qword [r15 + 0x3d48]
mov edx, dword [rax + 0x6c]
mov dword [rcx + 0x6c], edx
mov rax, qword [r15 + 0x3d48]
mov edx, dword [rax + 0x70]
mov dword [rcx + 0x70], edx
mov rax, qword [r15 + 0x3d48]
mov edx, dword [rax + 0x74]
mov dword [rcx + 0x74], edx
mov rax, qword [r15 + 0x3d48]
mov rdx, qword [rax + 0x40]
mov qword [rcx + 0x40], rdx
mov qword [rcx + 0x38], r8
mov eax, dword [r8 + 4]
mov dword [rcx + 0x10], eax
call fcn.14001a790
xor eax, eax
mov dword [rbp - 0x2c], eax
mov ebx, 0x20000c
mov esi, 0x200004
mov dword [rbp - 0x48], esi
mov ecx, dword [rsp + 0x74]
cmp dword [r15 + 0x407c], ecx
jne 0x14003fadc
mov eax, dword [r12 + 0x10]
mov dword [rbp - 0x2c], eax
mov byte [r12 + 0x1652], 0
mov dword [r12 + 0x4c], 0x80
mov eax, dword [rbp - 0x64]
mov dword [r12 + 0x1654], eax
cmp byte [r15 + 0x100], 0
sete al
mov byte [r15 + 0x4089], al
movss xmm5, dword [r15 + 0xf8]
subss xmm5, xmm8
subss xmm5, dword [r15 + 0x3924]
addss xmm5, dword [r12 + 0x50]
cmp byte [rsp + 0x70], 0
je 0x14003f556
movss xmm2, dword [r15 + 0xfc]
mov rax, qword [rbp - 0x78]
subss xmm2, dword [rax + 0x114]
jmp 0x14003f567
movss xmm2, dword [r15 + 0x3d50]
mulss xmm2, dword [0x140185904]
test r13b, r13b
je 0x14003f596
xor r13d, r13d
mov dword [r12 + 0x58], r13d
mov eax, dword [r12 + 0xc]
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x6a], r13b
mov byte [r12 + 0x1651], 1
jmp 0x14003f919
movzx eax, byte [rsp + 0x6c]
test al, al
je 0x14003f78d
cmp word [r15 + 0x2b22], 2
jb 0x14003f78d
cmp byte [r15 + 0x115], 0
jne 0x14003f78d
cmp byte [r12 + 0x6b], 0
je 0x14003f5e7
mov r8, qword [r12 + 0x20]
movsxd rax, dword [r12 + 0xc]
lea r9, [r8 + rax*4]
mov rdx, qword [r12]
lea rcx, [rbp - 0x50]
call fcn.14003bf40
movaps xmm2, xmm13
movaps xmm1, xmm5
mov rcx, r12
call fcn.14003c580
mov dword [r12 + 0x54], eax
mov dword [r12 + 0x58], eax
mov dword [r12 + 0x5c], eax
mov byte [r12 + 0x6a], 0
movzx ecx, word [r15 + 0x2b22]
sub ecx, 2
test cl, 1
jne 0x14003f6f0
test eax, eax
je 0x14003f632
movsxd rcx, eax
mov rax, qword [r12 + 0x20]
cmp dword [rax + rcx*4 - 4], 0xa
je 0x14003f632
xor cl, cl
jmp 0x14003f634
mov cl, 1
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
jne 0x14003f644
test cl, cl
jne 0x14003f669
lea rdx, [r12 + 0x54]
mov r8d, ebx
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
jne 0x14003f692
cmp dword [r12 + 0x58], eax
jne 0x14003f68d
mov eax, dword [r12 + 0x54]
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x58], eax
jmp 0x14003f692
mov dword [r12 + 0x54], eax
mov edx, dword [r12 + 0x54]
mov rcx, r12
call fcn.14003c1c0
mov dword [r12 + 0x54], eax
mov dword [r12 + 0x5c], eax
mov eax, dword [r12 + 0xc]
mov edx, dword [r12 + 0x5c]
mov ecx, dword [r12 + 0x58]
cmp ecx, edx
je 0x14003f6db
cmp ecx, eax
jle 0x14003f6c7
mov dword [r12 + 0x58], eax
mov ecx, eax
cmp edx, eax
jle 0x14003f6d2
mov dword [r12 + 0x5c], eax
mov edx, eax
cmp ecx, edx
jne 0x14003f6db
mov dword [r12 + 0x54], ecx
cmp dword [r12 + 0x54], eax
jle 0x14003f906
mov dword [r12 + 0x54], eax
jmp 0x14003f906
mov rcx, qword [r12 + 0x20]
cdqe
mov ebx, dword [rcx + rax*4]
mov r8d, esi
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov r8d, 0x600005
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov r8d, 0x600001
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
cmp ebx, 0xa
je 0x14003f77f
cmp byte [rsp + 0x70], 0
je 0x14003f77f
mov ecx, dword [r12 + 0x58]
mov eax, dword [r12 + 0x5c]
mov dword [r12 + 0x58], eax
mov dword [r12 + 0x5c], ecx
mov dword [r12 + 0x54], ecx
mov byte [r12 + 0x1650], 0
jmp 0x14003f906
cmp byte [r15 + 0x2b18], 0
je 0x14003f86c
cmp byte [r12 + 0x1651], 0
jne 0x14003f86c
test al, al
je 0x14003f916
cmp byte [r15 + 0x115], 0
je 0x14003f818
cmp byte [r12 + 0x6b], 0
je 0x14003f7e3
mov r8, qword [r12 + 0x20]
movsxd rax, dword [r12 + 0xc]
lea r9, [r8 + rax*4]
mov rdx, qword [r12]
lea rcx, [rbp - 0x50]
call fcn.14003bf40
movaps xmm2, xmm13
lea rbx, [r12 + 0x5c]
mov eax, dword [rbx]
cmp dword [r12 + 0x58], eax
jne 0x14003f7fb
mov eax, dword [r12 + 0x54]
mov dword [r12 + 0x58], eax
movaps xmm1, xmm5
mov rcx, r12
call fcn.14003c580
mov ecx, 0x54
mov rdx, r12
mov dword [rbx], eax
mov dword [rdx + rcx], eax
jmp 0x14003f906
cmp byte [r12 + 0x6b], 0
je 0x14003f83f
mov r8, qword [r12 + 0x20]
movsxd rax, dword [r12 + 0xc]
lea r9, [r8 + rax*4]
mov rdx, qword [r12]
lea rcx, [rbp - 0x50]
call fcn.14003bf40
movaps xmm2, xmm13
movaps xmm1, xmm5
mov rcx, r12
call fcn.14003c580
mov dword [r12 + 0x58], eax
mov byte [r12 + 0x6a], 0
lea rbx, [r12 + 0x5c]
mov ecx, 0x54
mov rdx, r12
mov dword [rbx], eax
mov dword [rdx + rcx], eax
jmp 0x14003f906
cmp byte [r15 + 0x100], 0
je 0x14003f916
cmp byte [r12 + 0x1651], 0
jne 0x14003f916
movss xmm0, dword [r15 + 0xe8]
ucomiss xmm0, xmm13
jp 0x14003f8ab
jne 0x14003f8ab
movss xmm0, dword [r15 + 0xec]
ucomiss xmm0, xmm13
jp 0x14003f8ab
je 0x14003f916
cmp byte [r12 + 0x6b], 0
je 0x14003f8d2
mov r8, qword [r12 + 0x20]
movsxd rax, dword [r12 + 0xc]
lea r9, [r8 + rax*4]
mov rdx, qword [r12]
lea rcx, [rbp - 0x50]
call fcn.14003bf40
movaps xmm2, xmm13
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
jne 0x14003f8e8
mov eax, dword [r12 + 0x54]
mov dword [r12 + 0x58], eax
movaps xmm1, xmm5
mov rcx, r12
call fcn.14003c580
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov ecx, dword [rsp + 0x74]
xor r13d, r13d
cmp byte [r12 + 0x1651], 0
je 0x14003f937
cmp byte [r15 + 0x100], 0
jne 0x14003f937
mov byte [r12 + 0x1651], 0
mov esi, dword [rbp - 0x64]
mov edx, dword [rsp + 0x68]
bt esi, 0xa
jae 0x14003fa04
test dl, dl
jne 0x14003fa04
mov ebx, ecx
lea eax, [rcx + 1]
test eax, 0xfffffffe
jne 0x14003f975
mov rbx, qword [0x140190fd0]
lea eax, [rcx - 1]
cmp eax, 0xfffffffd
ja 0x14003f96f
mov ebx, ecx
jmp 0x14003f975
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0x200
call fcn.14001b7f0
test al, al
je 0x14003fa00
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0x200
call fcn.14001db10
test al, al
je 0x14003fa00
mov r8d, 9
bt esi, 9
jae 0x14003f9de
mov rax, qword [0x140190fd0]
mov qword [rbp + 0x60], rax
mov dword [rbp + 0x68], 0x200
mov dword [rbp + 0x78], r8d
mov dword [rbp + 0x6c], esi
mov qword [rbp + 0x70], r13
lea rcx, [rbp + 0x60]
call r13
test eax, eax
jne 0x14003fa00
mov r8d, dword [rbp + 0x78]
test r8d, r8d
je 0x14003fa00
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov edx, dword [rsp + 0x68]
cmp byte [r15 + 0x114], 0
je 0x14003fa18
cmp byte [r15 + 0x116], 0
je 0x14003fa27
test r14b, r14b
je 0x14003fa2b
cmp byte [r15 + 0x117], 0
je 0x14003fa2b
mov al, 1
jmp 0x14003fa2d
xor al, al
cmp dword [r15 + 0x2b90], 0
jle 0x14003fadc
test al, al
jne 0x14003faad
test dl, dl
jne 0x14003faad
cmp byte [rsp + 0x51], dl
jne 0x14003faad
mov edi, r13d
mov rbx, r13
nop
mov rax, qword [r15 + 0x2b98]
mov ecx, dword [rbx + rax]
mov dword [rsp + 0x58], ecx
cmp ecx, 9
je 0x14003fa9e
mov r8d, esi
lea rdx, [rsp + 0x58]
mov rcx, r15
call fcn.14003e220
test al, al
je 0x14003fa9e
lea rdx, [r12 + 0x54]
mov r8d, dword [rsp + 0x58]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
inc edi
add rbx, 4
cmp edi, dword [r15 + 0x2b90]
jl 0x14003fa50
mov ecx, dword [r15 + 0x2b94]
test ecx, ecx
jns 0x14003fad5
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov edx, r13d
test eax, eax
cmovg edx, eax
lea rcx, [r15 + 0x2b90]
call fcn.1400271e0
mov dword [r15 + 0x2b90], r13d
xor sil, sil
mov byte [rbp - 0x68], sil
mov r13d, dword [rsp + 0x74]
cmp dword [r15 + 0x407c], r13d
jne 0x140040c75
cmp byte [r15 + 0x4088], sil
jne 0x140040c75
cmp byte [rsp + 0x5c], sil
jne 0x140040c75
movaps xmm0, xmm14
subss xmm0, dword [r15 + 0x3928]
divss xmm0, dword [r15 + 0x3d50]
cvttss2si eax, xmm0
mov ecx, 1
cmp eax, ecx
cmovge ecx, eax
mov dword [rbp - 0x50], ecx
mov dword [r12 + 0x64], ecx
movzx eax, byte [r15 + 0x115]
neg al
sbb eax, eax
and eax, 0x400000
mov dword [rsp + 0x58], eax
test r14b, r14b
je 0x14003fb7c
movzx eax, byte [r15 + 0x116]
mov byte [rsp + 0x51], al
cmp byte [r15 + 0x117], sil
je 0x14003fb88
cmp byte [r15 + 0x114], sil
jne 0x14003fb88
test al, al
jne 0x14003fb88
mov byte [rsp + 0x54], 1
jmp 0x14003fb8d
movzx eax, byte [r15 + 0x114]
mov byte [rsp + 0x51], al
mov byte [rsp + 0x54], sil
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fbb6
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fbb0
mov ebx, r13d
jmp 0x14003fbb6
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0xa39
call fcn.14001b7f0
test al, al
je 0x14003fbe2
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0xa39
call fcn.14001db10
test al, al
jne 0x14003fc37
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fc0b
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fc05
mov ebx, r13d
jmp 0x14003fc0b
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0x220a
call fcn.14001b7f0
test al, al
je 0x14003fc65
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0x220a
call fcn.14001db10
test al, al
je 0x14003fc65
mov esi, dword [rsp + 0x68]
mov r15d, dword [rbp - 0x54]
mov edi, dword [rsp + 0x70]
test sil, sil
jne 0x14003fc71
test r15b, r15b
jne 0x14003fc71
test dil, dil
je 0x14003fc5e
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
je 0x14003fc71
mov byte [rsp + 0x52], 1
jmp 0x14003fc76
mov r15d, dword [rbp - 0x54]
mov esi, dword [rsp + 0x68]
mov edi, dword [rsp + 0x70]
mov byte [rsp + 0x52], 0
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fc9f
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fc99
mov ebx, r13d
jmp 0x14003fc9f
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0xa24
call fcn.14001b7f0
test al, al
je 0x14003fccb
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0xa24
call fcn.14001db10
test al, al
jne 0x14003fd20
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fcf4
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fcee
mov ebx, r13d
jmp 0x14003fcf4
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0x1209
call fcn.14001b7f0
test al, al
je 0x14003fd3c
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0x1209
call fcn.14001db10
test al, al
je 0x14003fd3c
test r15b, r15b
jne 0x14003fd3c
test dil, dil
je 0x14003fd36
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
je 0x14003fd3c
mov byte [rbp - 0x56], 1
jmp 0x14003fd40
mov byte [rbp - 0x56], 0
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fd69
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fd63
mov ebx, r13d
jmp 0x14003fd69
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0xa37
call fcn.14001b7f0
test al, al
je 0x14003fd95
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0xa37
call fcn.14001db10
test al, al
jne 0x14003fdea
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fdbe
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fdb8
mov ebx, r13d
jmp 0x14003fdbe
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0x2209
call fcn.14001b7f0
test al, al
je 0x14003fdf4
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0x2209
call fcn.14001db10
test al, al
je 0x14003fdf4
test sil, sil
mov byte [rsp + 0x6c], 1
je 0x14003fdf9
mov byte [rsp + 0x6c], 0
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fe22
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fe1c
mov ebx, r13d
jmp 0x14003fe22
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0xa3b
call fcn.14001b7f0
test al, al
je 0x14003fe61
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0xa3b
call fcn.14001db10
mov edi, dword [rbp - 0x1c]
test al, al
je 0x14003fe64
test sil, sil
jne 0x14003fe64
test dil, dil
je 0x14003fe64
mov byte [rbp - 0x57], 1
jmp 0x14003fe68
mov edi, dword [rbp - 0x1c]
mov byte [rbp - 0x57], 0
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003fe91
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fe8b
mov ebx, r13d
jmp 0x14003fe91
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0xa3a
call fcn.14001b7f0
test al, al
je 0x14003febd
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0xa3a
call fcn.14001db10
test al, al
jne 0x14003ff17
test r14b, r14b
je 0x14003ff26
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x14003feeb
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14003fee5
mov ebx, r13d
jmp 0x14003feeb
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0x2a3b
call fcn.14001b7f0
test al, al
je 0x14003ff26
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0x2a3b
call fcn.14001db10
test al, al
je 0x14003ff26
test sil, sil
jne 0x14003ff26
test dil, dil
je 0x14003ff26
mov r13b, 1
jmp 0x14003ff29
xor r13b, r13b
mov ecx, dword [rsp + 0x74]
mov ebx, ecx
lea eax, [rcx + 1]
test eax, 0xfffffffe
jne 0x14003ff52
mov rbx, qword [0x140190fd0]
lea eax, [rcx - 1]
cmp eax, 0xfffffffd
ja 0x14003ff4c
mov ebx, ecx
jmp 0x14003ff52
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0xa22
call fcn.14001b7f0
test al, al
jne 0x14003ff6d
xor r15b, r15b
jmp 0x14003ff85
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0xa22
call fcn.14001db10
test al, al
setne r15b
mov rax, qword [rsp + 0x78]
test byte [rax + 8], 2
je 0x14003ff9b
test byte [rax + 0xc], 1
je 0x14003ff9b
mov dil, 1
jmp 0x14003ff9e
xor dil, dil
mov ebx, 1
mov r8d, ebx
xor edx, edx
mov ecx, 0x20d
call fcn.14001bb40
test al, al
jne 0x14003ffce
mov r8d, ebx
xor edx, edx
mov ecx, 0x273
call fcn.14001bb40
test al, al
jne 0x14003ffce
xor r14b, r14b
jmp 0x14003ffd2
movzx r14d, bl
test dil, dil
je 0x140040002
xor r8d, r8d
xor edx, edx
mov ecx, 0x27c
call fcn.14001bb40
test al, al
jne 0x14003fffd
xor r8d, r8d
xor edx, edx
mov ecx, 0x27b
call fcn.14001bb40
test al, al
je 0x140040002
movzx esi, bl
jmp 0x140040005
xor sil, sil
mov ecx, dword [rsp + 0x74]
mov ebx, ecx
lea eax, [rcx + 1]
test eax, 0xfffffffe
jne 0x14004002e
mov rbx, qword [0x140190fd0]
lea eax, [rcx - 1]
cmp eax, 0xfffffffd
ja 0x140040028
mov ebx, ecx
jmp 0x14004002e
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0x20e
call fcn.14001b7f0
test al, al
je 0x14004005a
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0x20e
call fcn.14001db10
test al, al
jne 0x1400400b4
test dil, dil
je 0x1400400b8
mov ecx, dword [rsp + 0x74]
mov ebx, ecx
lea eax, [rcx + 1]
test eax, 0xfffffffe
jne 0x140040088
mov rbx, qword [0x140190fd0]
lea eax, [rcx - 1]
cmp eax, 0xfffffffd
ja 0x140040082
mov ebx, ecx
jmp 0x140040088
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1001
mov edx, ebx
mov ecx, 0x27a
call fcn.14001b7f0
test al, al
je 0x1400400b8
mov r8d, 0x1021
mov edx, ebx
mov ecx, 0x27a
call fcn.14001db10
test al, al
je 0x1400400b8
mov bl, 1
jmp 0x1400400ba
xor bl, bl
mov edi, 1
mov r8d, edi
xor edx, edx
mov ecx, 0x201
call fcn.14001bb40
test al, al
je 0x140040122
cmp byte [rsp + 0x54], 0
jne 0x1400400ee
mov eax, 0x200000
cmp byte [rsp + 0x51], 0
mov ecx, 0x20000c
cmovne eax, ecx
mov dword [rbp - 0x48], eax
mov r8d, dword [rsp + 0x58]
or r8d, dword [rbp - 0x48]
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], dil
mov dword [r12 + 0x164c], 0xbe99999a
mov r15, qword [rsp + 0x78]
jmp 0x140040c48
mov r8d, edi
xor edx, edx
mov ecx, 0x202
call fcn.14001bb40
test al, al
je 0x140040167
cmp byte [rsp + 0x54], 0
je 0x14004014b
mov ecx, 0x200005
mov r8d, dword [rsp + 0x58]
or r8d, ecx
jmp 0x1400400f7
mov ecx, 0x200001
mov eax, 0x20000d
cmp byte [rsp + 0x51], 0
cmovne ecx, eax
mov r8d, dword [rsp + 0x58]
or r8d, ecx
jmp 0x1400400f7
mov r8d, edi
xor edx, edx
mov ecx, 0x203
call fcn.14001bb40
mov edi, dword [rsp + 0x70]
test al, al
je 0x14004020c
test dil, dil
je 0x14004020c
mov r15, qword [rsp + 0x78]
cmp byte [r15 + 0x114], 0
je 0x1400401d3
mov r8, qword [rbp - 0x78]
movss xmm0, dword [r8 + 0x90]
subss xmm0, dword [r15 + 0x3d50]
maxss xmm0, xmm13
movss dword [r8 + 0xa0], xmm0
xor eax, eax
mov dword [r8 + 0xa8], eax
mov dword [r8 + 0xb0], eax
jmp 0x140040c48
movzx eax, byte [rsp + 0x54]
lea r8d, [rax*4 + 0x200002]
or r8d, dword [rsp + 0x58]
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
jmp 0x140040c48
xor edx, edx
mov ecx, 0x204
mov r8d, 1
call fcn.14001bb40
test al, al
je 0x14004028e
test dil, dil
je 0x14004028e
mov r15, qword [rsp + 0x78]
cmp byte [r15 + 0x114], 0
je 0x14004027c
mov rax, qword [0x140190fd0]
mov rcx, qword [rax + 0x4018]
movss xmm0, dword [r15 + 0x3d50]
mov rax, qword [rbp - 0x78]
addss xmm0, dword [rax + 0x90]
minss xmm0, dword [rcx + 0x98]
movss dword [rax + 0xa0], xmm0
xor ecx, ecx
mov dword [rax + 0xa8], ecx
mov dword [rax + 0xb0], ecx
jmp 0x140040c48
movzx eax, byte [rsp + 0x54]
lea r8d, [rax*4 + 0x200003]
jmp 0x1400401e0
xor edx, edx
mov ecx, 0x205
mov r8d, 1
call fcn.14001bb40
test al, al
je 0x1400402f6
test dil, dil
je 0x1400402f6
mov r8d, dword [rsp + 0x58]
or r8d, 0x20000e
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
movd xmm0, dword [rbp - 0x50]
cvtdq2ps xmm0, xmm0
mov r15, qword [rsp + 0x78]
mulss xmm0, dword [r15 + 0x3d50]
subss xmm7, xmm0
jmp 0x140040c48
xor edx, edx
mov ecx, 0x206
mov r8d, 1
call fcn.14001bb40
test al, al
je 0x14004035e
test dil, dil
je 0x14004035e
mov r8d, dword [rsp + 0x58]
or r8d, 0x20000f
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
movd xmm0, dword [rbp - 0x50]
cvtdq2ps xmm0, xmm0
mov r15, qword [rsp + 0x78]
mulss xmm0, dword [r15 + 0x3d50]
addss xmm7, xmm0
jmp 0x140040c48
mov edi, 1
mov r8d, edi
xor edx, edx
mov ecx, 0x207
call fcn.14001bb40
test al, al
je 0x1400403c1
mov eax, dword [rsp + 0x58]
or eax, 0x200006
mov r8d, 0x200004
or r8d, dword [rsp + 0x58]
mov r15, qword [rsp + 0x78]
cmp byte [r15 + 0x114], 0
cmovne r8d, eax
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], dil
mov dword [r12 + 0x164c], 0xbe99999a
jmp 0x140040c48
mov r8d, edi
xor edx, edx
mov ecx, 0x208
call fcn.14001bb40
test al, al
je 0x1400403eb
mov r8d, dword [rsp + 0x58]
mov eax, r8d
or eax, 0x200007
mov ecx, 0x200005
or r8d, ecx
jmp 0x14004038a
mov r8d, edi
xor edx, edx
mov ecx, 0x20a
call fcn.14001bb40
movzx edi, byte [rsp + 0x52]
test al, al
je 0x140040471
cmp byte [rsp + 0x68], 0
jne 0x140040471
test dil, dil
jne 0x140040471
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
jne 0x14004044a
cmp byte [rsp + 0x51], dil
je 0x14004044a
lea rdx, [r12 + 0x54]
mov r8d, 0x60000d
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov r8d, dword [rsp + 0x58]
or r8d, 0x200008
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
jmp 0x14004010c
xor edx, edx
mov ecx, 0x20b
mov r8d, 1
call fcn.14001bb40
mov r8d, dword [rsp + 0x68]
test al, al
je 0x14004054c
test r8b, r8b
jne 0x14004054c
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
jne 0x1400404d4
cmp byte [rsp + 0x51], r8b
je 0x1400404ea
lea rdx, [r12 + 0x54]
mov r8d, 0x60000c
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov r15, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x58]
or r8d, 0x200009
jmp 0x1400401e5
cmp byte [rbp - 0x58], 0
je 0x1400404d4
mov r15, qword [rsp + 0x78]
cmp byte [r15 + 0x117], 0
je 0x1400404d9
cmp byte [r15 + 0x116], 0
jne 0x1400404d9
cmp byte [r15 + 0x114], 0
jne 0x1400404d9
lea rdx, [r12 + 0x54]
mov r8d, 0x600004
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov dword [r12 + 0x164c], 0xbe99999a
mov r8d, dword [rsp + 0x58]
or r8d, 0x200009
jmp 0x1400401e5
test r14b, r14b
jne 0x140040b74
test sil, sil
jne 0x140040b74
test bl, bl
je 0x1400405b7
test dword [rbp - 0x64], 0x100000
je 0x140040599
mov rax, qword [rbp - 0x60]
movzx eax, byte [rax]
test al, al
jne 0x140040587
xor cl, cl
mov dword [rsp + 0x60], ecx
mov byte [rsp + 0x50], cl
mov byte [rsp + 0x5c], 1
test al, al
setne sil
mov byte [rbp - 0x68], sil
mov r15, qword [rsp + 0x78]
jmp 0x140040c4b
mov sil, 1
mov byte [rbp - 0x68], sil
mov byte [rsp + 0x5c], sil
xor cl, cl
xor dl, dl
mov byte [rsp + 0x50], dl
mov r15, qword [rsp + 0x78]
jmp 0x140040c54
movzx eax, byte [rbp - 0x57]
test al, al
jne 0x140040b3c
test r13b, r13b
jne 0x140040b3c
test r15b, r15b
je 0x1400405ff
xor eax, eax
mov dword [r12 + 0x58], eax
mov eax, dword [r12 + 0xc]
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x6a], r13b
mov byte [r12 + 0x1650], 1
mov r15, qword [rsp + 0x78]
jmp 0x140040c48
test dil, dil
jne 0x140040887
cmp byte [rbp - 0x56], dil
jne 0x140040887
cmp byte [rsp + 0x6c], dil
je 0x140040118
mov rcx, qword [0x140190fd0]
mov rax, qword [rcx + 0xa8]
test rax, rax
je 0x140040647
mov rcx, qword [rcx + 0xb8]
call rax
mov rbx, rax
test rax, rax
je 0x140040118
jmp 0x14004064e
lea rbx, [0x140079ed7]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rbx + rax], 0
jne 0x140040655
movsxd rcx, eax
lea rcx, [rcx*4 + 4]
call fcn.1400111a0
mov r14, rax
mov qword [rbp - 0x48], rax
xor r13d, r13d
mov esi, r13d
mov r15, qword [rsp + 0x78]
cmp byte [rbx], r13b
je 0x1400406cc
mov rdi, rax
mov r14d, dword [rbp - 0x64]
nop dword [rax]
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.14000d460
movsxd rcx, eax
add rbx, rcx
mov r8d, r14d
lea rdx, [rbp - 0x50]
mov rcx, r15
call fcn.14003e220
test al, al
je 0x1400406c3
mov eax, dword [rbp - 0x50]
mov dword [rdi], eax
inc esi
add rdi, 4
cmp byte [rbx], r13b
jne 0x140040690
mov r14, qword [rbp - 0x48]
movsxd rax, esi
mov dword [r14 + rax*4], r13d
test esi, esi
jle 0x140040808
mov ecx, dword [r12 + 0xc]
mov r8d, dword [r12 + 0x5c]
mov eax, dword [r12 + 0x58]
cmp eax, r8d
je 0x14004071b
mov edx, eax
cmp eax, ecx
jle 0x1400406fc
mov dword [r12 + 0x58], ecx
mov edx, ecx
mov r9d, r8d
cmp r8d, ecx
jle 0x14004070c
mov dword [r12 + 0x5c], ecx
mov r9d, ecx
mov r8d, r9d
mov eax, edx
cmp edx, r9d
jne 0x14004071b
mov dword [r12 + 0x54], edx
mov r9d, dword [r12 + 0x54]
cmp r9d, ecx
jle 0x14004072d
mov dword [r12 + 0x54], ecx
mov r9d, ecx
mov ecx, dword [r12 + 0xc]
cmp eax, r8d
je 0x140040766
mov edx, eax
cmp eax, ecx
jle 0x140040744
mov dword [r12 + 0x58], ecx
mov edx, ecx
mov r10d, r8d
cmp r8d, ecx
jle 0x140040754
mov dword [r12 + 0x5c], ecx
mov r10d, ecx
mov r8d, r10d
mov eax, edx
cmp edx, r10d
jne 0x140040766
mov dword [r12 + 0x54], edx
mov r9d, edx
cmp r9d, ecx
jle 0x140040770
mov dword [r12 + 0x54], ecx
cmp eax, r8d
je 0x1400407b8
lea rdx, [r12 + 0x54]
mov rcx, r12
jge 0x140040799
sub r8d, eax
mov r9d, r8d
mov r8d, eax
call fcn.14003c8c0
mov eax, dword [r12 + 0x58]
mov dword [r12 + 0x5c], eax
jmp 0x1400407ae
sub eax, r8d
mov r9d, eax
call fcn.14003c8c0
mov eax, dword [r12 + 0x5c]
mov dword [r12 + 0x58], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x6a], r13b
mov r9d, esi
mov r8, r14
mov edx, dword [r12 + 0x54]
mov rcx, r12
call fcn.14003c3e0
test al, al
je 0x1400407ff
mov edi, dword [r12 + 0x54]
lea rcx, [r12 + 0x74]
xor edx, edx
call fcn.14003daf0
test rax, rax
je 0x1400407f5
mov dword [rax], edi
mov dword [rax + 4], r13d
mov dword [rax + 8], esi
mov dword [rax + 0xc], 0xffffffff
add dword [r12 + 0x54], esi
mov byte [r12 + 0x6a], r13b
mov byte [r12 + 0x1650], 1
test r14, r14
je 0x140040879
mov r8, qword [0x140190fd0]
test r8, r8
je 0x140040879
mov r9d, dword [r8 + 0x3f70]
movsx rdx, word [r8 + 0x68d8]
lea rcx, [r8 + 0x68dc]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r9d
je 0x14004086e
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x68d8], cx
movsx rax, cx
lea rcx, [r8 + 0x68dc]
lea rcx, [rcx + rax*8]
mov dword [rcx], r9d
mov dword [rcx + 4], r13d
inc word [rcx + 6]
inc dword [r8 + 0x68d4]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x140040c48
mov r15, qword [rsp + 0x78]
cmp qword [r15 + 0xb0], 0
je 0x140040a5f
mov edi, dword [r12 + 0x5c]
mov eax, dword [r12 + 0x58]
cmp eax, edi
je 0x1400408b7
mov r14d, edi
cmovl r14d, eax
cmovge edi, eax
xor r13d, r13d
jmp 0x1400408c2
xor r13d, r13d
mov r14d, r13d
mov edi, dword [r12 + 0xc]
mov rcx, qword [r12 + 0x20]
movsxd rax, edi
lea r9, [rcx + rax*4]
movsxd rax, r14d
lea rdx, [rcx + rax*4]
mov r8d, r13d
mov r15d, 0x80
nop
test r9, r9
je 0x1400408ea
cmp rdx, r9
jae 0x140040936
mov ecx, dword [rdx]
test ecx, ecx
je 0x140040936
add rdx, 4
cmp ecx, r15d
jae 0x1400408fe
inc r8d
jmp 0x1400408e0
cmp ecx, 0x800
jae 0x140040910
mov eax, 2
add r8d, eax
jmp 0x1400408e0
cmp ecx, 0x10000
jae 0x140040922
mov eax, 3
add r8d, eax
jmp 0x1400408e0
mov eax, r13d
cmp ecx, 0x10ffff
setbe al
add eax, 3
add r8d, eax
jmp 0x1400408e0
lea eax, [r8 + 1]
movsxd rbx, eax
mov rcx, rbx
call fcn.1400111a0
mov rsi, rax
mov rdx, qword [r12 + 0x20]
movsxd rcx, edi
lea r11, [rdx + rcx*4]
movsxd rcx, r14d
lea r10, [rdx + rcx*4]
mov r9, rax
lea rdi, [rax + rbx]
lea rbx, [rdi - 1]
cmp rax, rbx
mov r15, qword [rsp + 0x78]
jae 0x1400409b8
mov r15d, 0x80
test r11, r11
je 0x140040980
cmp r10, r11
jae 0x1400409b3
mov r8d, dword [r10]
test r8d, r8d
je 0x1400409b3
add r10, 4
cmp r8d, r15d
jae 0x140040999
mov byte [r9], r8b
inc r9
jmp 0x1400409ae
mov edx, edi
sub edx, r9d
dec edx
mov rcx, r9
call fcn.14000d610
movsxd rcx, eax
add r9, rcx
cmp r9, rbx
jb 0x140040976
mov r15, qword [rsp + 0x78]
mov byte [r9], 0
mov r8, qword [0x140190fd0]
mov rax, qword [r8 + 0xb0]
test rax, rax
je 0x1400409e2
mov rdx, rsi
mov rcx, qword [r8 + 0xb8]
call rax
mov r8, qword [0x140190fd0]
test rsi, rsi
je 0x140040a4f
test r8, r8
je 0x140040a4f
mov r9d, dword [r8 + 0x3f70]
movsx rdx, word [r8 + 0x68d8]
lea rcx, [rdx*8 + 0x68dc]
add rcx, r8
cmp dword [rcx], r9d
je 0x140040a44
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x68d8], cx
movsx rax, cx
lea rcx, [rax*8 + 0x68dc]
add rcx, r8
mov dword [rcx], r9d
mov dword [rcx + 4], 0
inc word [rcx + 6]
inc dword [r8 + 0x68d4]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movzx edi, byte [rsp + 0x52]
jmp 0x140040a62
xor r13d, r13d
test dil, dil
je 0x140040c48
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
jne 0x140040a91
mov dword [r12 + 0x58], r13d
mov eax, dword [r12 + 0xc]
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x6a], 0
mov byte [r12 + 0x1650], 1
mov r8d, dword [r12 + 0x5c]
mov eax, dword [r12 + 0x58]
cmp eax, r8d
je 0x140040c48
mov ecx, dword [r12 + 0xc]
cmp eax, ecx
jle 0x140040abd
mov dword [r12 + 0x58], ecx
mov eax, ecx
cmp r8d, ecx
jle 0x140040aca
mov dword [r12 + 0x5c], ecx
mov r8d, ecx
cmp eax, r8d
jne 0x140040ad4
mov dword [r12 + 0x54], eax
cmp dword [r12 + 0x54], ecx
jle 0x140040ae0
mov dword [r12 + 0x54], ecx
cmp eax, r8d
je 0x140040b31
lea rdx, [r12 + 0x54]
mov rcx, r12
jge 0x140040b17
sub r8d, eax
mov r9d, r8d
mov r8d, eax
call fcn.14003c8c0
mov eax, dword [r12 + 0x58]
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x6a], 0
jmp 0x140040c48
sub eax, r8d
mov r9d, eax
call fcn.14003c8c0
mov eax, dword [r12 + 0x5c]
mov dword [r12 + 0x58], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x6a], 0
jmp 0x140040c48
mov r8d, eax
xor r8d, 1
add r8d, 0x20000a
lea rdx, [r12 + 0x54]
mov rcx, r12
call fcn.14003ca40
mov byte [r12 + 0x1650], 1
mov eax, dword [r12 + 0x54]
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x58], eax
jmp 0x14004010c
mov ecx, dword [rbp - 0x64]
mov eax, ecx
shr eax, 0xb
and al, 1
mov edx, dword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
test dl, dl
je 0x140040b9d
test sil, sil
jne 0x140040b9d
test al, al
je 0x140040bd2
cmp byte [r15 + 0x114], sil
jne 0x140040bdc
mov byte [rsp + 0x64], 1
cmp byte [r15 + 0x5c], 0
je 0x140040c43
test dl, dl
jne 0x140040c43
xor eax, eax
mov dword [r12 + 0x58], eax
mov eax, dword [r12 + 0xc]
mov dword [r12 + 0x5c], eax
mov dword [r12 + 0x54], eax
mov byte [r12 + 0x6a], dl
jmp 0x140040c48
cmp byte [r15 + 0x114], 0
jne 0x140040b9d
test r8b, r8b
jne 0x140040c48
mov r8d, 0xa
bt ecx, 0x1a
jae 0x140040c48
bt ecx, 9
jae 0x1400401e5
mov rax, qword [0x140190fd0]
mov qword [rbp + 0xa0], rax
mov dword [rbp + 0xa8], 0x200
mov dword [rbp + 0xb8], r8d
mov dword [rbp + 0xac], ecx
xor eax, eax
mov qword [rbp + 0xb0], rax
lea rcx, [rbp + 0xa0]
call rax
test eax, eax
jne 0x140040c48
mov r8d, dword [rbp + 0xb8]
test r8d, r8d
je 0x140040c48
jmp 0x1400401e5
mov byte [rsp + 0x5c], 1
xor sil, sil
mov ecx, dword [rsp + 0x60]
movzx edx, byte [rsp + 0x50]
mov eax, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], eax
je 0x140040c68
test dl, dl
je 0x140040c68
mov al, 1
jmp 0x140040c6a
xor al, al
or cl, al
mov dword [rsp + 0x60], ecx
mov r13d, dword [rsp + 0x74]
xor r10d, r10d
mov qword [rbp - 0x48], r10
mov dword [rsp + 0x58], r10d
cmp dword [r15 + 0x407c], r13d
jne 0x140041527
mov r14d, dword [rsp + 0x68]
test r14b, r14b
jne 0x140040f93
test sil, sil
je 0x140040eef
test dword [rbp - 0x64], 0x100000
je 0x140040d25
lea rax, [0x140079ed7]
mov qword [rbp - 0x48], rax
mov dword [rsp + 0x58], r10d
mov byte [rsp + 0x53], 1
movsxd rbx, dword [r12 + 0xc]
lea rcx, [r12 + 0x74]
xor r9d, r9d
mov r8d, ebx
xor edx, edx
call fcn.14003dc40
mov r9, rax
test rax, rax
je 0x140040d04
test ebx, ebx
jle 0x140040d04
xor eax, eax
mov edx, eax
nop word [rax + rax]
mov rax, qword [r12 + 0x20]
mov ecx, dword [rax + rdx*4]
mov dword [r9 + rdx*4], ecx
inc rdx
cmp rdx, rbx
jl 0x140040cf0
mov r8d, dword [r12 + 0xc]
xor edx, edx
mov rcx, r12
call fcn.14003c300
xor r10d, r10d
mov qword [r12 + 0x58], r10
mov dword [r12 + 0x54], r10d
jmp 0x140040eef
mov r9, qword [r12 + 0x40]
mov rax, qword [rbp - 0x60]
mov r8, r9
sub r8, rax
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140040d47
inc rax
test ecx, ecx
jne 0x140040d34
test edx, edx
je 0x140040eef
mov r15, r9
mov qword [rbp - 0x48], r9
mov eax, dword [r12 + 0x38]
dec eax
mov dword [rsp + 0x58], eax
mov byte [rsp + 0x53], 1
mov qword [rbp + 8], r10
mov r14d, r10d
mov r13, r10
mov qword [rbp + 0x10], r10
test eax, eax
jle 0x140040e48
movsxd rdi, eax
add rdi, r9
mov rbx, r9
mov esi, r10d
test rdi, rdi
je 0x140040d92
cmp rbx, rdi
jae 0x140040db0
cmp byte [rbx], 0
je 0x140040db0
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.14000d460
movsxd rcx, eax
add rbx, rcx
inc esi
jmp 0x140040d88
lea r14d, [rsi + 1]
test r14d, r14d
jle 0x140040de2
mov ebx, r14d
cmp r14d, 8
mov eax, 8
cmovl ebx, eax
test ebx, ebx
jle 0x140040de2
movsxd rcx, ebx
shl rcx, 2
call fcn.1400111a0
mov r13, rax
mov qword [rbp + 0x10], rax
mov dword [rbp + 0xc], ebx
mov dword [rbp + 8], r14d
movsxd rax, dword [rsp + 0x58]
lea rdi, [r15 + rax]
mov rbx, r15
mov rsi, r13
movsxd r15, r14d
lea r15, [r15*4 - 4]
add r15, r13
cmp r13, r15
jae 0x140040e3e
test rdi, rdi
je 0x140040e12
cmp rbx, rdi
jae 0x140040e3a
cmp byte [rbx], 0
je 0x140040e3a
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.14000d460
movsxd rcx, eax
add rbx, rcx
mov eax, dword [rbp - 0x50]
mov dword [rsi], eax
add rsi, 4
cmp rsi, r15
jb 0x140040e08
mov eax, dword [rsp + 0x58]
xor r10d, r10d
mov dword [rsi], r10d
movzx esi, byte [rbp - 0x68]
lea r9d, [r14 - 1]
test eax, eax
cmovle r9d, r10d
lea rdx, [r12 + 0x54]
mov r8, r13
mov rcx, r12
call fcn.14003df40
nop
test r13, r13
je 0x140040ee0
mov r8, qword [0x140190fd0]
test r8, r8
je 0x140040ed6
mov r9d, dword [r8 + 0x3f70]
movsx r10, word [r8 + 0x68d8]
lea rdx, [r8 + 0x68dc]
lea rdx, [rdx + r10*8]
cmp dword [rdx], r9d
je 0x140040ecb
lea ecx, [r10 + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x68d8], cx
movsx rax, cx
lea rdx, [r8 + 0x68dc]
lea rdx, [rdx + rax*8]
mov dword [rdx], r9d
xor eax, eax
mov dword [rdx + 4], eax
inc word [rdx + 6]
inc dword [r8 + 0x68d4]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov r15, qword [rsp + 0x78]
mov r13d, dword [rsp + 0x74]
mov r14d, dword [rsp + 0x68]
mov byte [r12 + 0x48], 1
mov eax, dword [r12 + 0x18]
lea ebx, [rax*4 + 1]
mov ecx, dword [r12 + 0x2c]
cmp ebx, ecx
jle 0x140040f2f
test ecx, ecx
je 0x140040f19
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x140040f1e
mov eax, 8
mov edx, ebx
cmp eax, ebx
cmovg edx, eax
lea rcx, [r12 + 0x28]
call fcn.140026b30
mov dword [r12 + 0x28], ebx
mov r10, qword [r12 + 0x20]
mov r9, qword [r12 + 0x30]
movsxd r11, ebx
add r11, r9
lea rbx, [r11 - 1]
cmp r9, rbx
jae 0x140040f8c
mov r14d, 0x80
mov r8d, dword [r10]
test r8d, r8d
je 0x140040f87
add r10, 4
cmp r8d, r14d
jae 0x140040f6c
mov byte [r9], r8b
inc r9
jmp 0x140040f82
mov edx, r11d
sub edx, r9d
dec edx
mov rcx, r9
call fcn.14000d610
movsxd rcx, eax
add r9, rcx
cmp r9, rbx
jb 0x140040f53
mov r14d, dword [rsp + 0x68]
mov byte [r9], 0
xor r10d, r10d
test sil, sil
je 0x140041003
cmp byte [rsp + 0x64], 0
je 0x140040fa8
mov esi, dword [rbp - 0x64]
test sil, 0x20
jne 0x140041006
mov rsi, qword [rbp - 0x60]
mov r15d, dword [rbp - 0x7c]
mov r8d, dword [rsp + 0x68]
mov r11, qword [rbp - 0x48]
mov r10d, dword [rsp + 0x58]
mov r13, qword [rsp + 0x78]
mov r14d, dword [rsp + 0x74]
cmp dword [r13 + 0x6550], r14d
jne 0x1400415c8
cmp dword [r13 + 0x407c], r14d
je 0x1400415bd
mov rax, qword [0x140190fd0]
mov ecx, dword [rax + 0x49d0]
test cl, 0x20
je 0x14004153c
shr ecx, 6
test cl, 1
jmp 0x140041556
mov esi, dword [rbp - 0x64]
test esi, 0x801c0
je 0x1400414cd
mov edi, r10d
test sil, 0x40
je 0x140041082
mov ebx, r13d
lea eax, [r13 + 1]
test eax, 0xfffffffe
jne 0x140041044
mov rbx, qword [0x140190fd0]
lea eax, [r13 - 1]
cmp eax, 0xfffffffd
ja 0x14004103e
mov ebx, r13d
jmp 0x140041044
mov ebx, dword [rbx + 0x4998]
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0x200
call fcn.14001b7f0
test al, al
je 0x140041082
mov r8d, 0x1000
mov edx, ebx
mov ecx, 0x200
call fcn.14001db10
test al, al
je 0x140041082
mov eax, 0x40
mov edi, 0x200
xor r10d, r10d
jmp 0x140041104
test sil, sil
jns 0x1400410d8
mov ebx, 1
mov r8d, ebx
xor edx, edx
mov ecx, 0x203
call fcn.14001bb40
test al, al
je 0x1400410b2
mov r11d, 0x80
mov eax, r11d
mov edi, 0x203
xor r10d, r10d
jmp 0x14004110a
mov r8d, ebx
xor edx, edx
mov ecx, 0x204
call fcn.14001bb40
test al, al
je 0x1400410d8
mov r11d, 0x80
mov eax, r11d
mov edi, 0x204
xor r10d, r10d
jmp 0x14004110a
mov eax, 0x80000
test eax, esi
je 0x1400410f1
cmp byte [r12 + 0x1652], 0
je 0x1400410f1
xor r10d, r10d
jmp 0x140041104
mov ecx, pe_nt_image_headers64
test ecx, esi
mov r10d, 0
mov eax, r10d
cmovne eax, ecx
mov r11d, 0x80
test eax, eax
je 0x1400414cd
mov qword [rbp + 0x20], r15
mov dword [rbp + 0x28], eax
mov dword [rbp + 0x2c], esi
mov qword [rbp + 0x30], r10
test r14b, r14b
mov rax, qword [rbp - 0x60]
jne 0x14004112e
mov rax, qword [r12 + 0x30]
mov dword [rbp + 0x3c], edi
mov qword [rbp + 0x40], rax
mov eax, dword [r12 + 0x10]
mov dword [rbp + 0x48], eax
mov eax, dword [r12 + 0x4c]
mov dword [rbp + 0x4c], eax
mov byte [rbp + 0x50], 0
mov r9, qword [r12 + 0x20]
movsxd rax, dword [r12 + 0x54]
lea r8, [r9 + rax*4]
mov rdx, r9
mov ebx, r10d
nop dword [rax]
test r8, r8
je 0x14004116a
cmp rdx, r8
jae 0x1400411b2
mov ecx, dword [rdx]
test ecx, ecx
je 0x1400411b2
add rdx, 4
cmp ecx, r11d
jae 0x14004117d
inc ebx
jmp 0x140041160
cmp ecx, 0x800
jae 0x14004118e
mov eax, 2
add ebx, eax
jmp 0x140041160
cmp ecx, 0x10000
jae 0x14004119f
mov eax, 3
add ebx, eax
jmp 0x140041160
mov eax, r10d
cmp ecx, 0x10ffff
setbe al
add eax, 3
add ebx, eax
jmp 0x140041160
mov dword [rbp + 0x54], ebx
movsxd rax, dword [r12 + 0x58]
lea r8, [r9 + rax*4]
mov rdx, r9
mov r15d, r10d
test r8, r8
je 0x1400411ce
cmp rdx, r8
jae 0x14004121a
mov ecx, dword [rdx]
test ecx, ecx
je 0x14004121a
add rdx, 4
cmp ecx, r11d
jae 0x1400411e2
inc r15d
jmp 0x1400411c4
cmp ecx, 0x800
jae 0x1400411f4
mov eax, 2
add r15d, eax
jmp 0x1400411c4
cmp ecx, 0x10000
jae 0x140041206
mov eax, 3
add r15d, eax
jmp 0x1400411c4
mov eax, r10d
cmp ecx, 0x10ffff
setbe al
add eax, 3
add r15d, eax
jmp 0x1400411c4
mov dword [rbp + 0x58], r15d
movsxd rax, dword [r12 + 0x5c]
lea rdx, [r9 + rax*4]
mov r14d, r10d
nop word [rax + rax]
test rdx, rdx
je 0x14004123a
cmp r9, rdx
jae 0x140041287
mov ecx, dword [r9]
test ecx, ecx
je 0x140041287
add r9, 4
cmp ecx, r11d
jae 0x14004124f
inc r14d
jmp 0x140041230
cmp ecx, 0x800
jae 0x140041261
mov eax, 2
add r14d, eax
jmp 0x140041230
cmp ecx, 0x10000
jae 0x140041273
mov eax, 3
add r14d, eax
jmp 0x140041230
mov eax, r10d
cmp ecx, 0x10ffff
setbe al
add eax, 3
add r14d, eax
jmp 0x140041230
mov dword [rbp + 0x5c], r14d
lea rcx, [rbp + 0x20]
call r10
movzx r13d, byte [rbp + 0x50]
movsxd rcx, dword [rbp + 0x54]
cmp ecx, ebx
jne 0x1400412a4
test r13b, r13b
je 0x1400412e9
mov rbx, qword [rbp + 0x40]
lea rdi, [rbx + rcx]
xor edx, edx
mov esi, edx
test rdi, rdi
je 0x1400412ba
cmp rbx, rdi
jae 0x1400412d8
cmp byte [rbx], 0
je 0x1400412d8
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.14000d460
movsxd rcx, eax
add rbx, rcx
inc esi
jmp 0x1400412b0
mov dword [r12 + 0x54], esi
mov byte [r12 + 0x1650], 1
mov ecx, dword [rbp + 0x54]
movsxd rax, dword [rbp + 0x58]
cmp eax, r15d
jne 0x1400412f7
test r13b, r13b
je 0x140041340
cmp eax, ecx
jne 0x140041302
mov esi, dword [r12 + 0x54]
jmp 0x14004133b
mov rbx, qword [rbp + 0x40]
lea rdi, [rbx + rax]
xor eax, eax
mov esi, eax
nop
test rdi, rdi
je 0x14004131a
cmp rbx, rdi
jae 0x140041338
cmp byte [rbx], 0
je 0x140041338
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.14000d460
movsxd rcx, eax
add rbx, rcx
inc esi
jmp 0x140041310
mov eax, dword [rbp + 0x58]
mov dword [r12 + 0x58], esi
movsxd rcx, dword [rbp + 0x5c]
cmp ecx, r14d
jne 0x140041352
test r13b, r13b
je 0x1400414cd
cmp ecx, eax
jne 0x1400413f6
mov esi, dword [r12 + 0x58]
mov dword [r12 + 0x5c], esi
test r13b, r13b
je 0x1400414cd
mov rax, qword [0x140190fd0]
mov rcx, qword [rax + 0x3d48]
xor r13d, r13d
mov qword [rsp + 0x30], r13
lea rax, [0x14017fe6c]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm15
movaps xmm3, xmm9
movss xmm2, dword [rcx + 0x14]
lea rdx, [rbp - 0x50]
call fcn.14002e700
movaps xmm0, xmm13
divss xmm0, dword [rax]
cvttss2si esi, xmm0
mov r8d, dword [rbp + 0x48]
mov rdx, qword [rbp + 0x40]
mov rcx, r12
call fcn.14003e010
mov ebx, dword [rbp + 0x48]
mov eax, dword [rbp - 0x2c]
mov r15d, dword [rbp - 0x7c]
cmp ebx, eax
jle 0x14004144d
test r15b, r15b
je 0x14004144d
sub ebx, eax
add ebx, dword [r12 + 0x18]
mov ecx, dword [r12 + 0x1c]
cmp ebx, ecx
jle 0x140041448
test ecx, ecx
je 0x140041432
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x140041437
mov rbx, qword [rbp + 0x40]
lea rdi, [rbx + rcx]
xor edx, edx
mov esi, edx
test rdi, rdi
je 0x140041410
cmp rbx, rdi
jae 0x14004135f
cmp byte [rbx], 0
je 0x14004135f
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.14000d460
movsxd rcx, eax
add rbx, rcx
inc esi
jmp 0x140041402
mov eax, 8
mov edx, ebx
cmp eax, ebx
cmovg edx, eax
lea rcx, [r12 + 0x18]
call fcn.1400271e0
mov dword [r12 + 0x18], ebx
add dword [r12 + 0x54], esi
add dword [r12 + 0x58], esi
add dword [r12 + 0x5c], esi
mov rdi, qword [rbp + 0x40]
mov r14, qword [r12 + 0x20]
mov rbx, r14
movsxd rsi, dword [r12 + 0x18]
dec rsi
lea rsi, [r14 + rsi*4]
cmp r14, rsi
jae 0x1400414a8
nop dword [rax]
cmp byte [rdi], r13b
je 0x1400414a8
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x2c]
call fcn.14000d460
movsxd rcx, eax
add rdi, rcx
mov eax, dword [rbp - 0x2c]
mov dword [rbx], eax
add rbx, 4
cmp rbx, rsi
jb 0x140041480
mov dword [rbx], r13d
sub rbx, r14
sar rbx, 2
mov dword [r12 + 0xc], ebx
mov eax, dword [rbp + 0x48]
mov dword [r12 + 0x10], eax
mov dword [r12 + 0x164c], 0xbe99999a
jmp 0x1400414d1
mov r15d, dword [rbp - 0x7c]
mov r8d, dword [rsp + 0x68]
mov rsi, qword [rbp - 0x60]
test r8b, r8b
jne 0x140040fb5
mov r9, qword [r12 + 0x30]
mov rax, r9
mov r8, rsi
sub r8, r9
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140041504
inc rax
test ecx, ecx
jne 0x1400414f1
mov r8d, dword [rsp + 0x68]
test edx, edx
je 0x140040fb5
mov r11, r9
mov qword [rbp - 0x48], r9
mov r10d, dword [r12 + 0x10]
mov byte [rsp + 0x53], 1
jmp 0x140040fbe
mov r11, r10
mov rsi, qword [rbp - 0x60]
mov r15d, dword [rbp - 0x7c]
mov r8d, dword [rsp + 0x68]
jmp 0x140040fbe
mov edx, dword [rax + 0x49c8]
mov ecx, dword [rax + 0x40ac]
cmp ecx, edx
jne 0x1400415bd
test ecx, ecx
je 0x1400415bd
cmp dword [rax + 0x407c], edx
je 0x1400415bd
cmp byte [rax + 0x40b1], 0
jne 0x140041573
cmp dword [rax + 0x407c], 0
jne 0x1400415bd
cmp byte [rax + 0x408c], 0
je 0x1400415bd
test r8b, r8b
jne 0x1400415bd
mov r9, qword [r13 + 0x6560]
mov rax, r9
mov r8, rsi
sub r8, r9
nop dword [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1400415a3
inc rax
test ecx, ecx
jne 0x140041590
test edx, edx
je 0x1400415bd
mov r11, r9
mov qword [rbp - 0x48], r9
mov r10d, dword [r13 + 0x6558]
dec r10d
mov byte [rsp + 0x53], 1
xor edx, edx
mov dword [r13 + 0x6550], edx
jmp 0x1400415ca
xor edx, edx
test r11, r11
je 0x140041656
test r15b, r15b
je 0x14004162a
mov qword [rbp + 0x20], r13
mov dword [rbp + 0x28], 0x40000
mov eax, dword [rbp - 0x64]
mov dword [rbp + 0x2c], eax
mov qword [rbp + 0x40], rsi
mov dword [rbp + 0x48], r10d
lea eax, [r10 + 1]
mov ecx, 0x80
cmp eax, ecx
cmovle eax, ecx
mov dword [rbp + 0x4c], eax
mov qword [rbp + 0x30], rdx
lea rcx, [rbp + 0x20]
call rdx
mov rsi, qword [rbp + 0x40]
mov qword [rbp - 0x60], rsi
mov ecx, dword [rbp + 0x4c]
lea r10d, [rcx - 1]
cmp dword [rbp + 0x48], r10d
cmovl r10d, dword [rbp + 0x48]
mov r11, qword [rbp - 0x48]
jmp 0x14004162d
mov ecx, dword [rbp]
lea eax, [r10 + 1]
cmp eax, ecx
cmovl ecx, eax
movsxd rbx, ecx
cmp rbx, 1
jb 0x140041656
jbe 0x140041651
lea r8, [rbx - 1]
mov rdx, r11
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [rsi + rbx - 1], 0
cmp dword [r13 + 0x407c], r14d
jne 0x14004167c
cmp byte [rsp + 0x5c], 0
je 0x140041671
xor edx, edx
xor ecx, ecx
call fcn.140010bc0
jmp 0x14004167c
mov dword [r13 + 0x6a10], 1
cmp byte [rsp + 0x70], 0
jne 0x140041745
xor r8d, r8d
mov edx, r14d
lea rcx, [rbp - 0x40]
call fcn.14000eb00
mov rax, qword [0x140190fd0]
movups xmm0, xmmword [rax + 0x3a54]
movups xmmword [rbp - 0x40], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [rax + 0x38e8]
movss dword [rbp - 0x34], xmm0
lea rcx, [rbp - 0x40]
call fcn.14000d6d0
mov r8d, eax
movss xmm0, dword [r13 + 0x392c]
movss dword [rsp + 0x20], xmm0
mov r9b, 1
movaps xmm1, xmm10
unpcklps xmm1, xmm12
movq rdx, xmm1
movss xmm2, dword [rbp - 0x20]
movss xmm0, dword [rbp - 0x30]
unpcklps xmm2, xmm0
movq rcx, xmm2
call fcn.14000e960
movss xmm12, dword [rbp - 0x24]
movss dword [rbp + 0xe8], xmm12
movss dword [rbp + 0xec], xmm11
movss dword [rbp + 0xf0], xmm10
movaps xmm0, xmm14
addss xmm0, xmm11
movss dword [rbp + 0xf4], xmm0
movaps xmm1, xmm12
addss xmm1, dword [r13 + 0x3924]
addss xmm11, dword [r13 + 0x3928]
jmp 0x140041789
movss xmm12, dword [rbp - 0x24]
movss dword [rbp + 0xe8], xmm12
movss dword [rbp + 0xec], xmm11
movss dword [rbp + 0xf0], xmm10
addss xmm11, xmm14
movss dword [rbp + 0xf4], xmm11
mov rax, qword [rbp - 0x78]
movss xmm1, dword [rax + 0x110]
movss xmm11, dword [rax + 0x114]
movss dword [rbp + 0xe0], xmm1
movss dword [rbp + 0xe4], xmm11
xorps xmm9, xmm9
movss dword [rbp - 0x7c], xmm9
xorps xmm15, xmm15
subss xmm10, xmm12
movss xmm3, dword [0x140191968]
movss xmm8, dword [0x14018592c]
mov ebx, 0x1505
lea rdx, [0x14018022d]
lea rcx, str.cursor_offset
addss xmm3, xmm8
mov r8d, ebx
cmp byte [rbp - 0x80], 0
je 0x1400417f0
mov rsi, qword [r12 + 0x30]
mov qword [rbp - 0x60], rsi
nop dword [rax + rax]
imul r8d, r8d, 0x21
movzx eax, byte [rcx]
xor r8d, eax
inc rcx
cmp rcx, rdx
jne 0x1400417f0
movaps xmm0, xmm9
unpcklps xmm0, xmm10
movsd qword [rsp + 0x20], xmm0
mov edx, r14d
mov rdi, qword [rbp - 8]
mov rcx, rdi
call fcn.140035a60
mov r15, rax
lea rax, [0x14018023e]
lea r8, str.input_text_col
imul ebx, ebx, 0x21
movzx edx, byte [r8]
xor ebx, edx
inc r8
cmp r8, rax
jne 0x140041830
movaps xmm3, xmm8
mov r8d, ebx
mov edx, r14d
mov rcx, rdi
call fcn.14003b890
mov rcx, rax
mov r8, qword [0x140190fd0]
cmp byte [rsp + 0x50], 0
lea rdx, [r8 + 0x3b54]
jne 0x140041872
lea rdx, [r8 + 0x39e4]
mov rax, qword [rdx]
cmp rax, qword [rcx + 0x50]
jne 0x140041885
mov rax, qword [rdx + 8]
cmp rax, qword [rcx + 0x58]
je 0x1400418c5
movups xmm1, xmmword [rcx + 0x40]
movups xmm2, xmmword [rcx + 0x50]
subps xmm2, xmm1
movss xmm0, dword [rcx + 0x30]
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
addps xmm2, xmm1
movups xmmword [rcx + 0x40], xmm2
movups xmm0, xmmword [rdx]
movups xmmword [rcx + 0x50], xmm0
movss xmm1, dword [rcx + 0x28]
movss dword [rcx + 0x30], xmm1
ucomiss xmm1, dword [rcx + 0x2c]
jp 0x1400418c0
jne 0x1400418c0
mov al, 1
jmp 0x1400418c2
xor al, al
mov byte [rcx + 8], al
mov rax, qword [rcx]
movss xmm1, dword [r8 + 0x18]
call qword [rax + 8]
movss xmm14, dword [0x140185944]
movzx eax, byte [rsp + 0x50]
mov ecx, dword [rsp + 0x60]
test al, al
jne 0x140041a17
test cl, cl
jne 0x140041a17
mov r10d, dword [rsp + 0x70]
mov r15, qword [rbp - 0x60]
test r10b, r10b
je 0x140041959
xor r12d, r12d
mov ecx, r12d
movzx edx, byte [r15]
lea rdi, [r15 + 1]
test dl, dl
je 0x140041935
nop dword [rax]
nop word [rax + rax]
lea eax, [rcx + 1]
cmp dl, 0xa
cmovne eax, ecx
mov ecx, eax
movzx edx, byte [rdi]
inc rdi
test dl, dl
jne 0x140041920
dec rdi
movzx eax, byte [rdi]
cmp al, 0xa
je 0x140041945
cmp al, 0xd
je 0x140041945
inc ecx
movd xmm15, ecx
cvtdq2ps xmm15, xmm15
mulss xmm15, dword [r13 + 0x3d50]
jmp 0x140041997
cmp dword [r13 + 0x407c], r14d
jne 0x140041969
movsxd rdi, dword [r12 + 0x10]
jmp 0x14004197a
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [r15 + rdi], 0
jne 0x140041970
add rdi, r15
mov rax, rdi
sub rax, r15
movss xmm6, dword [rbp - 0x7c]
xor r12d, r12d
cmp rax, 0x200000
jge 0x140042394
mov rax, qword [0x140190fd0]
movups xmm0, xmmword [rax + 0x39d4]
movups xmmword [rbp - 0x40], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [rax + 0x38e8]
movss dword [rbp - 0x34], xmm0
lea r8, [rbp + 0xe8]
test r10b, r10b
cmovne r8, r12
lea rcx, [rbp - 0x40]
call fcn.14000d6d0
mov qword [rsp + 0x40], r8
movss dword [rsp + 0x38], xmm9
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0xe0]
movss xmm2, dword [r13 + 0x3d50]
mov rdx, qword [r13 + 0x3d48]
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax + 0x2a8]
call fcn.14002bd30
jmp 0x140042394
movsxd rdi, dword [r12 + 0x10]
add rdi, rsi
mov r14, qword [r12 + 0x20]
movaps xmm6, xmm9
movaps xmm10, xmm9
xor r9d, r9d
mov r10d, r9d
mov ebx, r9d
mov r8d, 0xfffffc18
mov esi, r8d
mov edx, r9d
test al, al
je 0x140041a59
movsxd rax, dword [r12 + 0x54]
lea r10, [r14 + rax*4]
mov edx, 1
mov r8d, 0xffffffff
test cl, cl
je 0x140041a7b
mov ecx, dword [r12 + 0x5c]
cmp dword [r12 + 0x58], ecx
cmovl ecx, dword [r12 + 0x58]
movsxd rax, ecx
lea rbx, [r14 + rax*4]
mov esi, 0xffffffff
inc edx
movzx eax, byte [rsp + 0x70]
add edx, eax
mov rax, r14
mov ecx, dword [r14]
test ecx, ecx
je 0x140041acd
mov r11, qword [rbp - 0x60]
mov qword [rbp - 0x60], r11
cmp ecx, 0xa
jne 0x140041ac3
inc r9d
cmp r8d, 0xffffffff
jne 0x140041ab0
cmp rax, r10
jb 0x140041ab0
mov r8d, r9d
dec edx
test edx, edx
jle 0x140041acd
cmp esi, 0xffffffff
jne 0x140041ac3
cmp rax, rbx
jb 0x140041ac3
mov esi, r9d
dec edx
test edx, edx
jle 0x140041acd
add rax, 4
mov ecx, dword [rax]
test ecx, ecx
jne 0x140041a94
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x60], rax
inc r9d
mov r11d, r9d
cmp r8d, 0xffffffff
cmovne r11d, r8d
cmp esi, 0xffffffff
cmove esi, r9d
mov rdx, r10
cmp r10, r14
jbe 0x140041b07
mov qword [rbp - 0x60], rax
lea rax, [rdx - 4]
cmp dword [rax], 0xa
je 0x140041b07
mov rdx, rax
cmp rax, r14
ja 0x140041af6
mov r8, qword [r13 + 0x3d48]
movss xmm2, dword [r13 + 0x3d50]
divss xmm2, dword [r8 + 0x14]
movaps xmm13, xmm9
movaps xmm1, xmm9
cmp rdx, r10
jae 0x140041b7c
nop word [rax + rax]
movsxd rax, dword [rdx]
add rdx, 4
cmp eax, 0xa
jne 0x140041b47
maxss xmm13, xmm1
movaps xmm1, xmm9
jmp 0x140041b6d
cmp eax, 0xd
je 0x140041b6d
cmp eax, dword [r8]
jge 0x140041b5f
mov rcx, rax
mov rax, qword [r8 + 8]
movss xmm0, dword [rax + rcx*4]
jmp 0x140041b65
movss xmm0, dword [r8 + 0x10]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp rdx, r10
jb 0x140041b30
comiss xmm1, xmm13
jbe 0x140041b7c
movaps xmm13, xmm1
movss xmm0, dword [r13 + 0x3d50]
movd xmm14, r11d
cvtdq2ps xmm14, xmm14
mulss xmm14, xmm0
test esi, esi
js 0x140041c30
mov rdx, rbx
cmp rbx, r14
jbe 0x140041bb4
lea rax, [rdx - 4]
cmp dword [rax], 0xa
je 0x140041bb4
mov rdx, rax
cmp rax, r14
ja 0x140041ba3
movaps xmm2, xmm0
divss xmm2, dword [r8 + 0x14]
movaps xmm6, xmm9
movaps xmm1, xmm9
cmp rdx, rbx
jae 0x140041c19
nop word [rax + rax]
movsxd rax, dword [rdx]
add rdx, 4
cmp eax, 0xa
jne 0x140041be6
maxss xmm6, xmm1
movaps xmm1, xmm9
jmp 0x140041c0c
cmp eax, 0xd
je 0x140041c0c
cmp eax, dword [r8]
jge 0x140041bfe
mov rcx, rax
mov rax, qword [r8 + 8]
movss xmm0, dword [rax + rcx*4]
jmp 0x140041c04
movss xmm0, dword [r8 + 0x10]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp rdx, rbx
jb 0x140041bd0
comiss xmm1, xmm6
jbe 0x140041c19
movaps xmm6, xmm1
movss xmm0, dword [r13 + 0x3d50]
movd xmm10, esi
cvtdq2ps xmm10, xmm10
mulss xmm10, xmm0
mov r10d, dword [rsp + 0x70]
movss xmm3, dword [rbp - 0x18]
test r10b, r10b
je 0x140041c52
movd xmm15, r9d
cvtdq2ps xmm15, xmm15
mulss xmm15, xmm0
movss dword [rbp - 0x7c], xmm3
movzx r8d, byte [rsp + 0x50]
test r8b, r8b
je 0x140041d8f
cmp byte [r12 + 0x1650], 0
je 0x140041d8f
test dword [rbp - 0x64], 0x1000
jne 0x140041cd1
movaps xmm2, xmm3
mulss xmm2, dword [0x1401858e0]
subss xmm3, dword [r13 + 0x3924]
movss xmm1, dword [r12 + 0x50]
comiss xmm1, xmm13
jbe 0x140041cac
movaps xmm1, xmm13
subss xmm1, xmm2
movaps xmm0, xmm9
maxss xmm0, xmm1
jmp 0x140041cbd
movaps xmm0, xmm13
subss xmm0, xmm3
comiss xmm0, xmm1
jb 0x140041cd8
addss xmm0, xmm2
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r12 + 0x50], xmm0
jmp 0x140041cd8
xor eax, eax
mov dword [r12 + 0x50], eax
test r10b, r10b
je 0x140041d86
movaps xmm0, xmm14
subss xmm0, dword [r13 + 0x3d50]
movss xmm3, dword [rbp - 0x14]
comiss xmm7, xmm0
jbe 0x140041d02
movaps xmm7, xmm9
maxss xmm7, xmm0
jmp 0x140041d2f
movss xmm2, dword [r13 + 0x3928]
addss xmm2, xmm2
movaps xmm1, xmm3
subss xmm1, xmm2
movaps xmm0, xmm14
subss xmm0, xmm1
comiss xmm0, xmm7
jb 0x140041d2f
movaps xmm7, xmm14
subss xmm7, xmm3
addss xmm7, xmm2
movss xmm2, dword [r13 + 0x3928]
comiss xmm9, xmm7
jbe 0x140041d44
movaps xmm2, xmm9
jmp 0x140041d5a
addss xmm2, xmm2
addss xmm2, xmm15
subss xmm2, xmm3
maxss xmm2, xmm9
minss xmm2, xmm7
mov rax, qword [rbp - 0x78]
movss xmm0, dword [rax + 0x90]
subss xmm0, xmm2
movss xmm1, dword [rbp + 0xe4]
addss xmm1, xmm0
movss dword [rbp + 0xe4], xmm1
movss dword [rax + 0x90], xmm2
mov byte [r12 + 0x1650], 0
movss xmm11, dword [r12 + 0x50]
cmp byte [rsp + 0x60], 0
je 0x1400420f5
mov edx, dword [r12 + 0x5c]
mov ecx, dword [r12 + 0x58]
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
cdqe
lea rbx, [r14 + rax*4]
cmovge edx, ecx
movsxd rax, edx
lea rsi, [r14 + rax*4]
test r8b, r8b
je 0x140041dd1
movss xmm1, dword [0x140185944]
jmp 0x140041dd9
movss xmm1, dword [0x14018590c]
mov rax, qword [0x140190fd0]
movups xmm0, xmmword [rax + 0x3cd4]
movups xmmword [rbp - 0x40], xmm0
mulss xmm1, dword [rax + 0x38e8]
shufps xmm0, xmm0, 0xff
mulss xmm0, xmm1
movss dword [rbp - 0x34], xmm0
lea rcx, [rbp - 0x40]
call fcn.14000d6d0
mov r14d, eax
test r10b, r10b
je 0x140041e1d
movss dword [rbp - 0x10], xmm9
movaps xmm12, xmm9
jmp 0x140041e26
movss xmm12, dword [0x140185968]
movss xmm7, dword [rbp + 0xe0]
addss xmm6, xmm7
subss xmm6, xmm11
addss xmm10, dword [rbp + 0xe4]
subss xmm10, xmm9
cmp rbx, rsi
jae 0x140042039
movss xmm4, dword [rbp + 0xf4]
movss xmm8, dword [rbp + 0xf0]
movss xmm5, dword [rbp + 0xec]
movss xmm9, dword [rbp + 0xe8]
movss xmm3, dword [r13 + 0x3d50]
movaps xmm0, xmm4
addss xmm0, xmm3
comiss xmm10, xmm0
ja 0x140042027
comiss xmm5, xmm10
jbe 0x140041eb9
cmp rbx, rsi
jae 0x14004200d
nop dword [rax]
mov eax, dword [rbx]
add rbx, 4
cmp eax, 0xa
je 0x14004200d
cmp rbx, rsi
jb 0x140041ea0
jmp 0x140042027
mov r8, qword [r13 + 0x3d48]
divss xmm3, dword [r8 + 0x14]
xorps xmm0, xmm0
xorps xmm2, xmm2
xorps xmm1, xmm1
mov rdx, rbx
cmp rbx, rsi
jae 0x140041f23
nop word [rax + rax]
movsxd rax, dword [rdx]
add rdx, 4
cmp eax, 0xa
jne 0x140041ef5
maxss xmm2, xmm1
movaps xmm1, xmm0
jmp 0x140041f1e
cmp eax, 0xd
je 0x140041f1e
cmp eax, dword [r8]
jge 0x140041f0d
mov rcx, rax
mov rax, qword [r8 + 8]
movss xmm0, dword [rax + rcx*4]
jmp 0x140041f13
movss xmm0, dword [r8 + 0x10]
mulss xmm0, xmm3
addss xmm1, xmm0
xorps xmm0, xmm0
cmp rdx, rsi
jb 0x140041ee0
maxss xmm1, xmm2
comiss xmm0, xmm1
jb 0x140041f59
cmp dword [r8], 0x20
jle 0x140041f40
mov rax, qword [r8 + 8]
movss xmm0, dword [rax + 0x80]
jmp 0x140041f46
movss xmm0, dword [r8 + 0x10]
mulss xmm0, dword [0x140185904]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm1, xmm6
movaps xmm0, xmm10
addss xmm0, xmm12
xorps xmm3, xmm3
addss xmm6, xmm3
movss xmm2, dword [rbp - 0x10]
subss xmm2, dword [r13 + 0x3d50]
addss xmm2, xmm10
maxss xmm6, xmm9
maxss xmm2, xmm5
movss dword [rbp - 0x40], xmm6
movss dword [rbp - 0x3c], xmm2
minss xmm1, xmm8
minss xmm0, xmm4
movss dword [rbp - 0x38], xmm1
movss dword [rbp - 0x34], xmm0
comiss xmm0, xmm5
jbe 0x14004200d
comiss xmm4, xmm2
jbe 0x14004200d
comiss xmm1, xmm9
jbe 0x14004200d
comiss xmm8, xmm6
jbe 0x14004200d
xor eax, eax
mov dword [rsp + 0x28], eax
movss dword [rsp + 0x20], xmm3
mov r9d, r14d
lea r8, [rbp - 0x38]
lea rdx, [rbp - 0x40]
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax + 0x2a8]
call fcn.14002ba40
movss xmm4, dword [rbp + 0xf4]
movss xmm8, dword [rbp + 0xf0]
movss xmm5, dword [rbp + 0xec]
movss xmm9, dword [rbp + 0xe8]
movss xmm7, dword [rbp + 0xe0]
movaps xmm6, xmm7
subss xmm6, xmm11
addss xmm10, dword [r13 + 0x3d50]
cmp rbx, rsi
jb 0x140041e70
movss xmm8, dword [0x14018592c]
xorps xmm9, xmm9
mov r10d, dword [rsp + 0x70]
movss xmm12, dword [rbp - 0x24]
mov r9, qword [rbp - 0x60]
test r10b, r10b
jne 0x14004205a
mov rax, rdi
sub rax, r9
cmp rax, 0x200000
jge 0x140042102
mov rax, qword [0x140190fd0]
movups xmm0, xmmword [rax + 0x39d4]
movups xmmword [rbp - 0x40], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [rax + 0x38e8]
movss dword [rbp - 0x34], xmm0
subss xmm7, xmm11
movss dword [rbp - 8], xmm7
movss xmm0, dword [rbp + 0xe4]
subss xmm0, xmm9
movss dword [rbp - 4], xmm0
lea r8, [rbp + 0xe8]
test r10b, r10b
mov eax, 0
cmovne r8, rax
lea rcx, [rbp - 0x40]
call fcn.14000d6d0
mov qword [rsp + 0x40], r8
movss dword [rsp + 0x38], xmm9
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r9
mov dword [rsp + 0x20], eax
lea r9, [rbp - 8]
movss xmm2, dword [r13 + 0x3d50]
mov rdx, qword [r13 + 0x3d48]
mov rsi, qword [rbp - 0x78]
mov rcx, qword [rsi + 0x2a8]
call fcn.14002bd30
jmp 0x140042106
movss xmm7, dword [rbp + 0xe0]
jmp 0x14004203f
mov rsi, qword [rbp - 0x78]
cmp byte [rsp + 0x50], 0
je 0x14004237a
movss xmm0, dword [r13 + 0x18]
addss xmm0, dword [r12 + 0x164c]
movss dword [r12 + 0x164c], xmm0
cmp byte [r13 + 0x5b], 0
je 0x14004214f
comiss xmm9, xmm0
jae 0x14004214f
movss xmm1, dword [0x14018594c]
call sub.api_ms_win_crt_math_l1_1_0.dll_fmodf
comiss xmm8, xmm0
jae 0x14004214f
xor bl, bl
jmp 0x140042151
mov bl, 1
addss xmm13, dword [rbp + 0xe0]
subss xmm13, xmm11
cvttss2si eax, xmm13
movd xmm6, eax
cvtdq2ps xmm6, xmm6
addss xmm14, dword [rbp + 0xe4]
subss xmm14, xmm9
cvttss2si eax, xmm14
movd xmm8, eax
cvtdq2ps xmm8, xmm8
movaps xmm9, xmm8
subss xmm9, dword [r13 + 0x3d50]
addss xmm9, dword [0x140185904]
movaps xmm11, xmm6
movss xmm14, dword [0x140185944]
addss xmm11, xmm14
movaps xmm10, xmm8
subss xmm10, dword [0x140185958]
movss xmm2, dword [r15 + 0x2c]
movaps xmm1, xmm2
mulss xmm1, dword [r15 + 0x34]
addss xmm1, dword [r15 + 0x28]
mulss xmm2, dword [r15 + 0x30]
addss xmm2, dword [r15 + 0x28]
subss xmm2, xmm1
movss dword [0x140191968], xmm2
mov rdx, qword [r15]
mov rax, qword [0x140190fd0]
movss xmm1, dword [rax + 0x18]
mov rcx, r15
call qword [rdx + 8]
movaps xmm0, xmm6
subss xmm0, xmm12
movss xmm12, dword [r15 + 0x28]
movss xmm7, dword [r15 + 0x2c]
subss xmm0, xmm12
divss xmm0, xmm7
movss xmm13, dword [r15 + 0x34]
ucomiss xmm13, xmm0
jp 0x140042229
je 0x140042234
movss dword [r15 + 0x30], xmm0
mov byte [r15 + 8], 0
test bl, bl
je 0x14004232f
comiss xmm10, dword [rbp + 0xec]
jbe 0x14004232f
movss xmm0, dword [rbp + 0xf4]
comiss xmm0, xmm9
jbe 0x14004232f
comiss xmm11, dword [rbp + 0xe8]
jbe 0x14004232f
movss xmm0, dword [rbp + 0xf0]
comiss xmm0, xmm6
jbe 0x14004232f
mov rax, qword [0x140190fd0]
movups xmm0, xmmword [rax + 0x39d4]
movups xmmword [rbp - 0x40], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [rax + 0x38e8]
movss dword [rbp - 0x34], xmm0
lea rcx, [rbp - 0x40]
call fcn.14000d6d0
movss xmm3, dword [0x1401900b8]
mulss xmm3, dword [0x140185998]
movss xmm2, dword [rbp + 0x104]
addss xmm2, dword [rbp - 0x30]
mulss xmm2, dword [0x140185904]
movaps xmm1, xmm3
addss xmm1, xmm2
mulss xmm7, xmm13
addss xmm7, xmm12
addss xmm7, dword [rbp - 0x20]
movaps xmm0, xmm7
addss xmm0, xmm14
movss dword [rbp - 0x78], xmm0
movss dword [rbp - 0x74], xmm1
subss xmm2, xmm3
movss dword [rsp + 0x78], xmm7
movss dword [rsp + 0x7c], xmm2
xor r12d, r12d
mov dword [rsp + 0x28], r12d
xorps xmm3, xmm3
movss dword [rsp + 0x20], xmm3
mov r9d, eax
lea r8, [rbp - 0x78]
lea rdx, [rsp + 0x78]
mov rcx, qword [rsi + 0x2a8]
call fcn.14002ba40
jmp 0x140042332
xor r12d, r12d
mov r15, qword [rbp - 0x60]
mov r14d, dword [rsp + 0x74]
cmp byte [rsp + 0x68], 0
jne 0x14004238f
mov byte [r13 + 0x6730], 1
subss xmm6, xmm14
movss xmm0, dword [r13 + 0x3d50]
subss xmm8, xmm0
movss dword [r13 + 0x6734], xmm6
movss dword [r13 + 0x6738], xmm8
movss dword [r13 + 0x673c], xmm0
jmp 0x14004238f
movss xmm14, dword [0x140185944]
mov r15, qword [rbp - 0x60]
mov r14d, dword [rsp + 0x74]
xor r12d, r12d
movss xmm6, dword [rbp - 0x7c]
mov ebx, dword [rbp - 0x54]
test bl, bl
je 0x1400423a0
call fcn.14001a830
cmp byte [rsp + 0x70], 0
je 0x140042415
movss dword [rbp - 0x78], xmm6
addss xmm15, dword [r13 + 0x3928]
movss dword [rbp - 0x74], xmm15
lea rcx, [rbp - 0x78]
call fcn.1400341f0
or dword [r13 + 0x49ac], 0x401
call fcn.140014830
mov eax, dword [r13 + 0x49d0]
and eax, 0x80
mov ebx, dword [rbp + 0x118]
or ebx, eax
call fcn.14001e390
cmp dword [r13 + 0x49c8], 0
jne 0x140042412
mov dword [r13 + 0x49c8], r14d
mov eax, dword [rbp + 0x114]
mov dword [r13 + 0x49cc], eax
mov dword [r13 + 0x49d0], ebx
mov ebx, dword [rbp - 0x54]
cmp byte [r13 + 0x67f0], 0
je 0x140042592
test bl, bl
jne 0x140042592
mov rsi, qword [0x140190fd0]
mov r14, qword [rsi + 0x4018]
mov qword [rsi + 0x6818], r12
mov qword [rsi + 0x6810], r12
test rdi, rdi
jne 0x140042472
mov rdi, r15
cmp r15, 0xffffffffffffffff
jae 0x140042472
movzx ecx, byte [rdi]
test cl, cl
je 0x140042472
lea rax, [rdi + 1]
cmp cl, 0x23
jne 0x140042469
cmp byte [rax], cl
je 0x140042472
mov rdi, rax
cmp rax, 0xffffffffffffffff
jb 0x140042455
movss xmm0, dword [rsi + 0x3928]
addss xmm0, dword [rsi + 0x6820]
addss xmm0, xmm14
movss xmm1, dword [rbp + 0xe4]
movss dword [rsi + 0x6820], xmm1
comiss xmm1, xmm0
jbe 0x1400424af
lea rcx, [0x14007ae44]
call fcn.140024290
mov byte [rsi + 0x6824], 1
lea r8, [0x140180079]
lea rdx, [0x140180078]
lea rcx, [rbp + 0xe0]
call fcn.1400242d0
mov eax, dword [r14 + 0x198]
mov ecx, dword [rsi + 0x6828]
cmp ecx, eax
jle 0x1400424e2
mov dword [rsi + 0x6828], eax
mov ecx, eax
mov r14d, dword [r14 + 0x198]
sub r14d, ecx
nop dword [rax]
mov r8, rdi
sub r8, r15
mov edx, 0xa
mov rcx, r15
call sub.VCRUNTIME140.dll_memchr
mov rbx, rdi
test rax, rax
cmovne rbx, rax
cmp r15, rbx
jne 0x140042517
cmp rbx, rdi
je 0x140042578
mov r9d, ebx
sub r9d, r15d
cmp byte [rsi + 0x6824], 0
lea edx, [r14*4]
jne 0x140042533
mov edx, 1
mov qword [rsp + 0x20], r15
lea r8, [0x140079ed7]
lea rcx, str._s_.s
call fcn.140024290
mov byte [rsi + 0x6824], 0
cmp byte [rbx], 0xa
jne 0x14004256a
lea rcx, [0x14007ae44]
call fcn.140024290
mov byte [rsi + 0x6824], 1
cmp rbx, rdi
je 0x140042578
lea r15, [rbx + 1]
jmp 0x1400424f0
lea r8, [0x140180075]
lea rdx, [0x140180074]
lea rcx, [rbp + 0xe0]
call fcn.1400242d0
movzx ebx, byte [rsp + 0x53]
test bl, bl
je 0x1400425d5
test dword [rbp - 0x64], 0x8000000
jne 0x1400425d5
mov rax, qword [0x140190fd0]
cmp word [rax + 0x669e], 0
jg 0x1400425d5
mov edx, dword [rax + 0x407c]
cmp edx, dword [rsp + 0x74]
je 0x1400425c5
test edx, edx
jne 0x1400425ce
mov word [rax + 0x408c], 0x101
or dword [rax + 0x49d0], 4
mov ecx, 1
call fcn.14000dc80
test byte [rbp - 0x64], 0x20
mov eax, ebx
movzx ecx, byte [rsp + 0x64]
cmovne eax, ecx
jmp 0x14003ea91