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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1a8
movapd xmmword [rsp + 0x190], xmm15
movapd xmmword [rsp + 0x180], xmm14
movapd xmmword [rsp + 0x170], xmm13
movapd xmmword [rsp + 0x160], xmm12
movapd xmmword [rsp + 0x150], xmm11
movapd xmmword [rsp + 0x140], xmm10
movapd xmmword [rsp + 0x130], xmm9
movapd xmmword [rsp + 0x120], xmm8
movapd xmmword [rsp + 0x110], xmm7
movapd xmmword [rsp + 0x100], xmm6
mov qword [rsp + 0xa8], r9
mov r14, r8
mov rbx, rdx
mov r13, rcx
mov rsi, qword [rsp + 0x210]
call sub.msvcrt.dll_localeconv
mov rdi, qword [rax]
mov rcx, rdi
call sub.msvcrt.dll_strlen
mov rdx, r14
mov r11, rax
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x90], 0
mov r15d, dword [r14]
lea r12, [r13 + 1]
jmp 0x140019453
inc r12
movzx eax, byte [r12 - 1]
movsx ecx, al
lea r8d, [rcx - 9]
cmp r8d, 5
jb 0x140019450
cmp ecx, 0x2a
jg 0x140019479
cmp ecx, 0x20
je 0x140019450
test ecx, ecx
je 0x1400194e7
jmp 0x1400194fb
cmp ecx, 0x2b
je 0x14001948a
cmp ecx, 0x2d
jne 0x1400194fb
mov eax, 1
jmp 0x14001948c
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], r12
movzx eax, byte [r12]
test al, al
je 0x1400194e7
cmp al, 0x30
jne 0x14001950e
movsx ecx, byte [r12 + 1]
or ecx, 0x20
cmp ecx, 0x78
jne 0x140019618
mov rdi, qword [rsp + 0x78]
mov dword [rsp + 0x20], edi
lea rcx, [rsp + 0x48]
lea r9, [rsp + 0x90]
mov r8, qword [rsp + 0xa8]
call fcn.140036d40
mov dword [rsp + 0x38], eax
cmp eax, 6
jne 0x1400196a8
jmp 0x1400194ef
mov dword [rsp + 0x38], 6
mov qword [rsp + 0x48], r13
xor edi, edi
jmp 0x1400196a8
dec r12
mov qword [rsp + 0x48], r12
xor ecx, ecx
mov qword [rsp + 0x78], rcx
cmp al, 0x30
je 0x1400194a3
mov r8d, eax
mov qword [rsp + 0x68], r15
lea ecx, [r8 - 0x30]
cmp cl, 9
ja 0x14001956e
lea r9, [r12 + 1]
xor ecx, ecx
xor r14d, r14d
xor esi, esi
jmp 0x140019554
lea r10d, [r14 + r14*4]
lea r14d, [r8 + r10*2]
add r14d, 0xffffffd0
inc esi
mov qword [rsp + 0x48], r9
movzx r8d, byte [r9]
lea r10d, [r8 - 0x30]
inc r9
cmp r10b, 0xa
jae 0x14001957a
movzx r8d, r8b
cmp esi, 8
jbe 0x140019530
cmp esi, 0xf
ja 0x14001953c
lea ecx, [rcx + rcx*4]
lea ecx, [r8 + rcx*2]
add ecx, 0xffffffd0
jmp 0x14001953c
xor esi, esi
xor r14d, r14d
xor ecx, ecx
mov r9, r12
jmp 0x14001957d
dec r9
mov r10d, dword [rdx + 0x10]
mov dword [rsp + 0xb4], r10d
movsx r8d, r8b
cmp r8b, byte [rdi]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xc8], r11
jne 0x1400195fc
movzx r10d, byte [rdi + 1]
mov r11d, 1
test r10b, r10b
je 0x1400195d4
nop word [rax + rax]
cmp byte [r9 + r11], r10b
jne 0x1400195fc
movzx r10d, byte [rdi + r11 + 1]
inc r11
test r10b, r10b
jne 0x1400195c0
mov r10d, r11d
lea rbx, [r9 + r10]
mov qword [rsp + 0x48], rbx
movsx r8d, byte [r9 + r10]
xor r11d, r11d
test esi, esi
je 0x140019644
mov r15d, esi
xor r9d, r9d
mov qword [rsp + 0x70], r12
jmp 0x140019753
mov dl, 1
mov dword [rsp + 0x60], edx
mov dword [rsp + 0x3c], 0
mov rbx, r9
mov r15d, esi
xor r9d, r9d
jmp 0x14001987a
inc r12
nop dword [rax + rax]
mov qword [rsp + 0x48], r12
movzx r8d, byte [r12]
inc r12
cmp r8d, 0x30
je 0x140019620
test r8d, r8d
je 0x14001ac29
dec r12
jmp 0x140019511
xor r15d, r15d
mov r11d, 0
cmp r8b, 0x30
jne 0x140019678
lea rbx, [r10 + r9]
inc rbx
xor r11d, r11d
nop dword [rax]
inc r11d
mov qword [rsp + 0x48], rbx
movsx r8d, byte [rbx]
inc rbx
cmp r8d, 0x30
je 0x140019660
dec rbx
lea r10d, [r8 - 0x31]
mov ebp, 0
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x3c], 0
mov r9d, r11d
cmp r10d, 9
jae 0x14001987a
jmp 0x140019764
test rbx, rbx
je 0x1400196b5
mov rax, qword [rsp + 0x48]
mov qword [rbx], rax
test edi, edi
je 0x1400196be
or byte [rsp + 0x38], 8
mov r8, qword [rsp + 0x90]
test r8, r8
je 0x1400196e3
mov rcx, rsi
mov edx, r15d
call fcn.140037770
mov rcx, qword [rsp + 0x90]
call fcn.140036040
mov eax, dword [rsp + 0x38]
movaps xmm6, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm8, xmmword [rsp + 0x120]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm10, xmmword [rsp + 0x140]
movaps xmm11, xmmword [rsp + 0x150]
movaps xmm12, xmmword [rsp + 0x160]
movaps xmm13, xmmword [rsp + 0x170]
movaps xmm14, xmmword [rsp + 0x180]
movaps xmm15, xmmword [rsp + 0x190]
add rsp, 0x1a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r10d, [r8 - 0x30]
cmp r10d, 9
ja 0x140019868
mov ebp, r9d
lea r9d, [rbp + 1]
add r8d, 0xffffffd0
je 0x140019786
add r11d, r9d
test ebp, ebp
jle 0x140019828
cmp ebp, 1
jne 0x14001978e
mov rdi, r15
mov r9d, r15d
jmp 0x1400197f3
mov edx, r15d
jmp 0x14001984f
mov edx, ebp
and edx, 0xfffffffe
mov rdi, r15
mov r10d, r15d
nop dword [rax]
lea r9d, [r14 + r14]
lea r12d, [rcx + rcx]
cmp r10d, 0x10
lea r12d, [r12 + r12*4]
cmovge r12d, ecx
cmp r10d, 9
lea r15d, [r9 + r9*4]
cmovge r15d, r14d
cmovl r12d, ecx
lea r9d, [r10 + 2]
lea r14d, [r15 + r15]
lea ecx, [r12 + r12]
cmp r10d, 0xf
lea ecx, [rcx + rcx*4]
cmovge ecx, r12d
cmp r10d, 8
lea r14d, [r14 + r14*4]
cmovge r14d, r15d
cmovl ecx, r12d
mov r10d, r9d
add edx, 0xfffffffe
jne 0x1400197a0
test bpl, 1
je 0x140019822
lea edx, [r14 + r14]
lea r10d, [rcx + rcx]
cmp r9d, 0x10
lea r10d, [r10 + r10*4]
cmovge r10d, ecx
cmp r9d, 9
lea edx, [rdx + rdx*4]
cmovge edx, r14d
cmovl r10d, ecx
mov r14d, edx
mov ecx, r10d
mov r15, rdi
add r15d, ebp
lea edx, [r15 + 1]
cmp r15d, 8
jg 0x14001983f
lea r9d, [r14 + r14*4]
lea r14d, [r8 + r9*2]
xor r9d, r9d
jmp 0x14001984f
xor r9d, r9d
cmp r15d, 0xf
ja 0x14001984f
lea ecx, [rcx + rcx*4]
lea ecx, [r8 + rcx*2]
lea r10, [rbx + 1]
mov qword [rsp + 0x48], r10
movsx r8d, byte [rbx + 1]
mov rbx, r10
mov r15d, edx
jmp 0x140019753
mov dword [rsp + 0x3c], r11d
mov dword [rsp + 0x60], 0
mov r12, qword [rsp + 0x70]
mov r10d, r8d
and r10d, 0xffffffdf
xor ebp, ebp
cmp r10d, 0x45
jne 0x1400198a9
cmp al, 0x30
je 0x1400198e7
test r15d, r15d
jne 0x1400198e7
test r9d, r9d
jne 0x1400198e7
mov dword [rsp + 0x38], 6
mov qword [rsp + 0x48], r13
jmp 0x14001a7a3
mov rbx, r13
mov rdx, qword [rsp + 0xa0]
test r15d, r15d
je 0x14001a60d
mov dword [rsp + 0x38], 1
mov eax, dword [rdx + 0xc]
and eax, 3
je 0x140019922
cmp eax, 3
je 0x14001992a
xor r8d, r8d
cmp eax, 2
jne 0x140019933
mov r8d, 2
sub r8d, dword [rsp + 0x78]
jmp 0x140019933
mov qword [rsp + 0x70], r15
lea r15, [rbx + 1]
mov qword [rsp + 0x48], r15
movsx r8d, byte [rbx + 1]
xor edi, edi
cmp r8d, 0x2b
je 0x140019a6f
cmp r8d, 0x2d
mov rdx, qword [rsp + 0xa0]
jne 0x140019a85
mov edi, 1
jmp 0x140019a77
mov r8d, 1
jmp 0x140019933
mov rax, qword [rsp + 0x78]
lea r8d, [rax + 1]
mov dword [rsp + 0x88], r8d
test esi, esi
cmove esi, r15d
cmp r15d, 0x11
mov ebx, 0x11
cmovl ebx, r15d
mov eax, r14d
cvtsi2sd xmm6, rax
movsd qword [rsp + 0x50], xmm6
cmp ebx, 0xa
mov qword [rsp + 0x70], r15
jl 0x140019987
lea eax, [rbx - 9]
mov r8, qword [0x14003a9c8]
mov ecx, ecx
cvtsi2sd xmm0, rcx
mulsd xmm6, qword [r8 + rax*8]
addsd xmm6, xmm0
movsd qword [rsp + 0x50], xmm6
sub ebp, dword [rsp + 0x3c]
movq rax, xmm6
mov r15, rax
shr r15, 0x20
cmp dword [rsp + 0x68], 0x35
jg 0x140019b61
cmp dword [rsp + 0x70], 0xf
jg 0x140019b61
test ebp, ebp
je 0x140019a2b
jle 0x140019b33
cmp ebp, 0x16
ja 0x140019b4d
mov ecx, ebp
lea r9, [0x14003a960]
or r15d, 0x100000
xor r8d, r8d
test eax, eax
setne r8b
cmovne r15d, eax
shl r8d, 5
add r8d, dword [r9 + rcx*4]
tzcnt eax, r15d
sub r8d, eax
add r8d, 0x15
xor eax, eax
cmp r8d, 0x36
setl al
mov r8, qword [0x14003a9c8]
mulsd xmm6, qword [r8 + rcx*8]
movsd qword [rsp + 0x50], xmm6
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x30], rcx
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
jmp 0x14001a785
lea rax, [rsp + 0x38]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 1
lea rcx, [rsp + 0x50]
mov r8, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x210]
call fcn.14001ae20
test eax, eax
jne 0x14001a7a3
jmp 0x14001a7cb
mov rdx, qword [rsp + 0xa0]
lea r15, [rbx + 2]
mov qword [rsp + 0x48], r15
movsx r8d, byte [rbx + 2]
lea r10d, [r8 - 0x30]
cmp r10d, 9
ja 0x140019b27
cmp r8d, 0x30
jne 0x140019ab5
inc r15
nop dword [rax]
mov qword [rsp + 0x48], r15
movsx r8d, byte [r15]
inc r15
cmp r8d, 0x30
je 0x140019aa0
dec r15
lea r10d, [r8 - 0x31]
xor ebp, ebp
cmp r10d, 8
ja 0x14001a5ff
lea r13d, [r8 - 0x30]
lea r10, [r15 + 1]
mov qword [rsp + 0x48], r10
movzx r11d, byte [r15 + 1]
lea r10d, [r11 - 0x30]
cmp r10b, 9
ja 0x14001a5c6
mov edx, edi
lea rbp, [r15 + 2]
nop dword [rax + rax]
movzx r8d, r11b
lea r10d, [r13 + r13*4]
lea r13d, [r8 + r10*2]
add r13d, 0xffffffd0
mov qword [rsp + 0x48], rbp
movzx r11d, byte [rbp]
lea edi, [r11 - 0x30]
inc rbp
cmp dil, 0xa
jb 0x140019af0
lea r8d, [r8 + r10*2]
add rbp, 0xfffffffffffffffe
mov edi, edx
jmp 0x14001a5c9
mov qword [rsp + 0x48], rbx
xor ebp, ebp
jmp 0x14001a5ff
cmp ebp, 0xffffffea
jb 0x140019b61
mov eax, ebp
neg eax
mov rcx, qword [0x14003a9c8]
divsd xmm6, qword [rcx + rax*8]
jmp 0x14001a762
mov eax, 0x25
mov rcx, qword [rsp + 0x70]
sub eax, ecx
cmp ebp, eax
jle 0x14001a741
mov eax, ebp
mov rcx, qword [rsp + 0x70]
mov edx, ecx
sub edx, ebx
add edx, eax
jle 0x140019c62
mov eax, edx
and eax, 0xf
je 0x140019b98
mov eax, eax
mov rcx, qword [0x14003a9c8]
mulsd xmm6, qword [rcx + rax*8]
movsd qword [rsp + 0x50], xmm6
movq r15, xmm6
shr r15, 0x20
xor ebx, ebx
cmp edx, 0x10
jb 0x140019d5e
mov ecx, edx
shr ecx, 4
xor eax, eax
cmp edx, 0x100
jb 0x140019c07
mov rax, qword [0x14003a9c0]
movsd xmm0, qword [rax + 0x20]
xor eax, eax
mov edx, r15d
shr edx, 0x14
and edx, 0x7ff
add eax, edx
add eax, 0xfffffc01
and r15d, 0x800fffff
or r15d, 0x3ff00000
mov dword [rsp + 0x54], r15d
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
add ecx, 0xfffffff0
movq r15, xmm1
shr r15, 0x20
cmp ecx, 0xf
ja 0x140019bc0
mov edx, r15d
shr edx, 0x14
and edx, 0x7ff
and r15d, 0x800fffff
or r15d, 0x3ff00000
mov dword [rsp + 0x54], r15d
movsd xmm6, qword [rsp + 0x50]
test ecx, ecx
je 0x140019d4f
mov r8, qword [0x14003a9c0]
jmp 0x140019c56
mov r9d, ecx
shr r9d, 1
add r8, 8
cmp ecx, 2
mov ecx, r9d
jb 0x140019d4f
test cl, 1
je 0x140019c40
mulsd xmm6, qword [r8]
jmp 0x140019c40
xor ebx, ebx
test edx, edx
jns 0x140019d5e
neg edx
mov eax, edx
and eax, 0xf
je 0x140019c92
mov eax, eax
mov rcx, qword [0x14003a9c8]
divsd xmm6, qword [rcx + rax*8]
movsd qword [rsp + 0x50], xmm6
movq r15, xmm6
shr r15, 0x20
cmp edx, 0x10
jb 0x140019d5e
mov ecx, edx
shr ecx, 4
xor eax, eax
cmp edx, 0x100
jb 0x140019cff
mov rax, qword [0x14003a9d0]
movsd xmm0, qword [rax + 0x20]
xor eax, eax
mov edx, r15d
shr edx, 0x14
and edx, 0x7ff
add eax, edx
add eax, 0xfffffc01
and r15d, 0x800fffff
or r15d, 0x3ff00000
mov dword [rsp + 0x54], r15d
movsd xmm1, qword [rsp + 0x50]
mulsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
add ecx, 0xfffffff0
movq r15, xmm1
shr r15, 0x20
cmp ecx, 0xf
ja 0x140019cb8
mov edx, r15d
shr edx, 0x14
and edx, 0x7ff
and r15d, 0x800fffff
or r15d, 0x3ff00000
mov dword [rsp + 0x54], r15d
movsd xmm6, qword [rsp + 0x50]
test ecx, ecx
je 0x140019d4f
mov r8, qword [0x14003a9d0]
jmp 0x140019d43
mov r9d, ecx
shr r9d, 1
add r8, 8
cmp ecx, 2
mov ecx, r9d
jb 0x140019d4f
test cl, 1
je 0x140019d31
mulsd xmm6, qword [r8]
jmp 0x140019d31
lea ebx, [rax + rdx]
add ebx, 0xfffffc01
movsd qword [rsp + 0x50], xmm6
mov r13d, ebp
lea rdx, [rsp + 0x44]
lea r8, [rsp + 0x40]
movapd xmm0, xmm6
call fcn.140036b50
mov r15, rax
mov qword [rsp + 0x90], rax
add ebx, dword [rsp + 0x44]
mov dword [rsp + 0x44], ebx
mov eax, dword [rsp + 0x40]
mov ebp, eax
mov rdi, qword [rsp + 0x68]
sub ebp, edi
jle 0x140019db0
mov rcx, r15
mov edx, ebp
call fcn.1400378e0
add ebp, dword [rsp + 0x44]
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x44], ebp
mov eax, edi
mov ebx, ebp
mov qword [rsp + 0x60], r15
mov r8d, ebx
sub r8d, edi
add r8d, eax
mov rdx, qword [rsp + 0xa0]
mov ecx, dword [rdx + 8]
inc ecx
mov dword [rsp + 0x3c], 0
cmp r8d, ecx
jle 0x140019de7
mov r15, qword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
jmp 0x14001a95b
mov edi, dword [rdx + 4]
mov dword [rsp + 0x5c], r8d
cmp r8d, edi
jge 0x140019e26
sub ebx, edi
mov ebp, r13d
mov r15, qword [rsp + 0x70]
jle 0x14001a586
mov rcx, qword [rsp + 0x60]
mov edx, ebx
call fcn.140036670
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x90], rax
add dword [rsp + 0x40], ebx
jmp 0x14001ab80
mov dword [rsp + 0x3c], 0
mov ebp, r13d
mov ebx, dword [rsp + 0x88]
mov rax, qword [rsp + 0xc8]
mov r15, qword [rsp + 0x70]
mov qword [rsp + 0xb8], rdi
mov dword [rsp + 0x20], eax
mov rcx, r12
mov edx, esi
mov r8d, r15d
mov r9d, r14d
call fcn.1400375b0
mov ecx, dword [rsp + 0x38]
mov dword [rsp + 0x8c], ecx
mov qword [rsp + 0xe8], rax
add rax, 0x10
mov qword [rsp + 0xf0], rax
mov r15d, ebp
neg r15d
test ebp, ebp
mov eax, 0
cmovs ebp, eax
cmovns r15d, eax
mov rax, qword [rsp + 0x68]
inc eax
mov dword [rsp + 0xe0], eax
and ebx, 1
mov dword [rsp + 0xd8], ebx
movsd xmm8, qword [0x14003a928]
movsd xmm9, qword [0x14003a930]
movsd xmm10, qword [0x14003a938]
movapd xmm11, xmmword [0x14003a940]
movsd xmm12, qword [0x14003a910]
movsd xmm13, qword [0x14003a918]
movsd xmm14, qword [0x14003a920]
xorpd xmm15, xmm15
xor eax, eax
mov qword [rsp + 0x70], rax
mov r14, qword [rsp + 0x60]
mov dword [rsp + 0xdc], r15d
mov dword [rsp + 0xc8], ebp
jmp 0x140019f4e
ucomisd xmm6, xmm7
ja 0x14001a573
xor eax, eax
mov qword [rsp + 0x70], rax
cmp dword [rsp + 0x3c], 0
je 0x14001a092
mov rcx, qword [rsp + 0xc0]
call fcn.140036040
mov rcx, r12
call fcn.140036040
mov rcx, rsi
call fcn.140036040
mov rcx, rdi
call fcn.140036040
mov rsi, qword [rsp + 0xe8]
mov ecx, dword [rsi + 8]
call fcn.140035ea0
mov r12, rax
lea rcx, [rax + 0x10]
movsxd rax, dword [rsi + 0x14]
lea r8, [rax*4 + 8]
mov rdx, qword [rsp + 0xf0]
call sub.msvcrt.dll_memcpy
mov ecx, dword [r14 + 8]
call fcn.140035ea0
mov rbx, rax
lea rcx, [rax + 0x10]
lea rdx, [r14 + 0x10]
mov qword [rsp + 0x60], r14
movsxd rax, dword [r14 + 0x14]
lea r8, [rax*4 + 8]
call sub.msvcrt.dll_memcpy
mov r13d, dword [rsp + 0x40]
mov esi, r13d
mov rax, qword [rsp + 0x70]
sub esi, eax
mov r14d, dword [rsp + 0x44]
lea edi, [r14 + rax]
mov ecx, 1
call fcn.140036220
test edi, edi
mov ecx, edi
mov r8d, 0
cmovns ecx, r8d
cmovs edi, r8d
mov edx, ebp
sub edx, ecx
add edi, r15d
mov ecx, dword [rsp + 0xe0]
mov dword [rsp + 0x84], esi
sub ecx, esi
sub r13d, dword [rsp + 0x68]
add r13d, r14d
sub r13d, dword [rsp + 0xb8]
cmovge r13d, r8d
add r13d, ecx
lea ebp, [rdi + r13]
add r13d, edx
cmp ebp, r13d
mov r14d, r13d
cmovl r14d, ebp
cmp r14d, edi
cmovge r14d, edi
test r14d, r14d
cmovle r14d, r8d
test r15d, r15d
jle 0x14001a05d
mov rcx, rax
mov edx, r15d
call fcn.140036420
mov rsi, rax
mov rcx, rax
mov rdx, rbx
call fcn.1400362e0
mov r15, r12
mov r12, rax
mov rcx, rbx
call fcn.140036040
mov rcx, r12
mov r12, r15
jmp 0x14001a063
mov rsi, rax
mov rcx, rbx
mov rax, qword [rsp + 0x70]
add eax, r14d
sub ebp, eax
test ebp, ebp
jle 0x14001a084
mov edx, ebp
call fcn.140036670
mov rbp, rax
mov ebx, dword [rsp + 0x88]
jmp 0x14001a0b0
mov ebx, dword [rsp + 0x88]
js 0x14001a0a4
mov rbp, rcx
jmp 0x14001a0b0
mov rcx, r14
call fcn.140037a30
mov qword [rsp + 0x70], rax
jmp 0x140019f29
neg ebp
mov edx, ebp
mov rbp, rcx
call fcn.1400378e0
sub r13d, r14d
mov edx, dword [rsp + 0xc8]
test edx, edx
je 0x14001a0c9
mov rcx, r12
call fcn.140036420
mov r12, rax
sub edi, r14d
test r13d, r13d
jle 0x14001a0df
mov rcx, r12
mov edx, r13d
call fcn.140036670
mov r12, rax
mov r14, qword [rsp + 0x60]
test edi, edi
jle 0x14001a0f5
mov rcx, rsi
mov edx, edi
call fcn.140036670
mov rsi, rax
mov rcx, rbp
mov rdx, r12
call fcn.140036890
mov rdi, rax
cmp dword [rax + 0x14], 1
jg 0x14001a113
cmp dword [rdi + 0x18], 0
je 0x14001a5b6
mov r13d, dword [rdi + 0x10]
mov dword [rdi + 0x10], 0
mov rcx, rdi
mov rdx, rsi
call fcn.140036830
test ebx, ebx
mov qword [rsp + 0xc0], rbp
mov qword [rsp + 0xd0], r12
je 0x14001a174
test eax, eax
jg 0x14001a174
mov ebp, r13d
xor ebp, dword [rsp + 0xd8]
je 0x14001a7d2
test r13d, r13d
je 0x14001a204
mov r12b, 1
xor edx, edx
mov ecx, 0x20
mov dword [rsp + 0x8c], 0x21
jmp 0x14001a2c4
test eax, eax
js 0x14001a838
je 0x14001a89e
mov rcx, rdi
mov rdx, rsi
call fcn.140037690
xor ebp, ebp
ucomisd xmm12, xmm0
jae 0x14001a1f8
movapd xmm6, xmm0
mulsd xmm6, xmm13
xor ecx, ecx
test r13d, r13d
setne r12b
sete cl
shl ecx, 4
add ecx, 0x10
xor ebp, ebp
ucomisd xmm14, xmm6
jbe 0x14001a247
cvttsd2si edx, xmm6
cvttpd2dq xmm0, xmm6
cvtdq2pd xmm7, xmm0
subsd xmm6, xmm7
cmp ebx, 2
je 0x14001a27e
cmp ebx, 1
je 0x14001a285
test ebx, ebx
jne 0x14001a2ce
ucomisd xmm6, xmm13
jae 0x14001a291
jmp 0x14001a2ce
mov eax, dword [rsp + 0x8c]
jmp 0x14001a2aa
mov dword [rsp + 0x8c], 0x11
mov eax, dword [rsp + 0x5c]
cmp eax, dword [rsp + 0xb8]
je 0x14001a43c
mov rcx, qword [rsp + 0x68]
xor eax, eax
cmp ecx, 0x20
jl 0x14001a24f
nop dword [rax]
cmp dword [r14 + rax*4 + 0x18], 0
jne 0x14001a2a5
inc rax
lea edx, [rcx - 0x20]
cmp ecx, 0x3f
mov ecx, edx
jg 0x14001a230
jmp 0x14001a251
xor edx, edx
movapd xmm7, xmm6
jmp 0x14001a2ce
mov edx, ecx
cmp edx, 2
jl 0x14001ab28
mov eax, eax
mov r8d, dword [r14 + rax*4 + 0x18]
tzcnt ecx, r8d
shr r8d, cl
mov dword [r14 + rax*4 + 0x18], r8d
dec edx
mov eax, 0x11
cmp ecx, edx
jb 0x14001a2aa
jmp 0x14001ab28
test r13d, r13d
jne 0x14001a28a
jmp 0x14001a2ce
test r13d, r13d
jne 0x14001a2ce
ucomisd xmm6, xmm15
jbe 0x14001a2ce
inc edx
mov eax, 0x30
sub eax, ecx
xorps xmm7, xmm7
cvtsi2sd xmm7, edx
mov ecx, eax
jmp 0x14001a2ce
mov eax, 0x11
test r13d, r13d
mov dword [rsp + 0x8c], eax
je 0x14001a43c
mov r12b, 1
xor edx, edx
mov ecx, 0x20
movapd xmm6, xmm8
movapd xmm7, xmm8
mov dword [rsp + 0x84], ecx
mov r15, rsi
mov eax, dword [rsp + 0x40]
mov esi, dword [rsp + 0x44]
add esi, eax
cmp dword [rsp + 0x3c], 0
mov dword [rsp + 0x70], edx
jne 0x14001a313
mov r14, qword [rsp + 0x68]
mov ebx, r14d
sub ebx, eax
jle 0x14001a313
mov rcx, qword [rsp + 0x60]
mov edx, ebx
call fcn.140036670
mov r13, rax
sub dword [rsp + 0x44], ebx
mov dword [rsp + 0x40], r14d
jmp 0x14001a318
mov r13, qword [rsp + 0x60]
movapd xmm0, xmm7
lea rdx, [rsp + 0xe4]
lea r8, [rsp + 0xfc]
call fcn.140036b50
mov rbx, rax
mov edx, dword [rsp + 0xe4]
test edx, edx
js 0x14001a34e
je 0x14001a358
mov rcx, rbx
call fcn.140036670
mov rbx, rax
jmp 0x14001a358
neg edx
mov rcx, rbx
call fcn.1400378e0
mov rcx, r13
mov rdx, rbx
test r12b, r12b
je 0x14001a3c6
call fcn.140037a70
mov r14, rax
mov qword [rsp + 0x90], rax
movsxd rdx, dword [rax + 0x14]
cmp edx, dword [r13 + 0x14]
mov r12, qword [rsp + 0xd0]
jg 0x14001a39f
bsr ecx, dword [r14 + rdx*4 + 0x14]
xor ecx, 0x1f
bsr eax, dword [r13 + rdx*4 + 0x14]
xor eax, 0x1f
cmp ecx, eax
jae 0x14001a4f0
cmp dword [rsp + 0x3c], 0
je 0x14001a46d
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
xor ecx, ecx
cmp eax, dword [rsp + 0x68]
setne cl
mov dword [rsp + 0x3c], ecx
jmp 0x14001a4f0
call fcn.140036890
mov r14, rax
mov qword [rsp + 0x90], rax
cmp dword [rsp + 0x3c], 0
mov dword [rsp + 0x3c], 1
mov r12, qword [rsp + 0xd0]
jne 0x14001a4f0
movsxd rdx, dword [r13 + 0x14]
cmp dword [r14 + 0x14], edx
jl 0x14001a415
bsr ecx, dword [r14 + rdx*4 + 0x14]
xor ecx, 0x1f
bsr eax, dword [r13 + rdx*4 + 0x14]
xor eax, 0x1f
cmp ecx, eax
jbe 0x14001a4e1
mov qword [rsp + 0x60], rdi
mov rax, qword [rsp + 0xb8]
mov edi, dword [rsp + 0x5c]
cmp edi, eax
jne 0x14001a4a6
dec dword [rsp + 0x40]
mov dword [rsp + 0x5c], eax
mov rdi, qword [rsp + 0x60]
jmp 0x14001a4f0
xor edx, edx
mov ecx, 0x10
cmp dword [rsp + 0x3c], 0
je 0x14001a494
movapd xmm6, xmm8
movapd xmm7, xmm8
mov r12d, 0
cmp dword [rsp + 0x84], 1
jg 0x14001a2ce
jmp 0x14001aa8e
mov rcx, r14
mov edx, 1
call fcn.1400378e0
inc dword [rsp + 0x44]
inc dword [rsp + 0x5c]
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x70], 0
jmp 0x14001a4f0
movapd xmm6, xmm8
movapd xmm7, xmm8
xor r12d, r12d
jmp 0x14001a2ce
mov rcx, r14
mov edx, 1
call fcn.140036670
mov r14, rax
mov qword [rsp + 0x90], rax
dec dword [rsp + 0x44]
dec edi
mov dword [rsp + 0x5c], edi
mov dword [rsp + 0x3c], 0
xor ebp, ebp
mov dword [rsp + 0x70], 0
mov rdi, qword [rsp + 0x60]
jmp 0x14001a4f0
mov dword [rsp + 0x3c], 0
nop dword [rax]
mov rcx, rbx
call fcn.140036040
mov rcx, r13
call fcn.140036040
test ebp, ebp
jne 0x14001a5ab
mov eax, dword [rsp + 0x40]
add eax, dword [rsp + 0x44]
cmp esi, eax
mov ebp, dword [rsp + 0xc8]
mov rsi, r15
mov r15d, dword [rsp + 0xdc]
jne 0x140019f17
cmp dword [rsp + 0x70], 0
je 0x140019f17
mulsd xmm7, xmm9
movapd xmm0, xmm6
addsd xmm0, xmm10
movapd xmm1, xmm7
xorpd xmm1, xmm11
ucomisd xmm1, xmm0
ja 0x140019f0d
ucomisd xmm0, xmm7
jbe 0x140019f17
movapd xmm0, xmm8
subsd xmm0, xmm7
ucomisd xmm0, xmm6
jbe 0x140019f17
mov ebx, dword [rsp + 0x8c]
or ebx, dword [rsp + 0x84]
jmp 0x14001a7e0
jns 0x14001ab80
add eax, ebx
mov dword [rsp + 0x40], eax
jle 0x14001ab60
neg ebx
mov rcx, qword [rsp + 0x60]
mov edx, ebx
call fcn.1400378e0
jmp 0x14001ab80
mov rbp, qword [rsp + 0xc0]
mov rsi, r15
mov ebx, dword [rsp + 0x8c]
mov dword [rsp + 0x38], ebx
jmp 0x14001a7ec
mov rbp, r15
sub rbp, r15
inc rbp
cmp r8d, 0x4e50
movsx r8d, r11b
mov r10d, 0x4e1f
cmovge r13d, r10d
cmp rbp, 9
cmovge r13d, r10d
mov ebp, r13d
neg ebp
test edi, edi
cmove ebp, r13d
mov rdx, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x70]
test r15d, r15d
jne 0x1400198bd
cmp al, 0x30
je 0x14001a7a3
test r9d, r9d
mov r15, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x78]
jne 0x14001a72c
cmp byte [rsp + 0x60], 0
je case.0x14001a64f.74
add r8d, 0xffffffb7
cmp r8d, 0x25
ja case.0x14001a64f.74
lea rax, [0x14001ad7c]
movsxd rcx, dword [rax + r8*4]
add rcx, rax
jmp rcx
lea rdx, [0x14003a950]
lea rcx, [rsp + 0x48]
call fcn.140037720
test eax, eax
je case.0x14001a64f.74
dec qword [rsp + 0x48]
lea rdx, str.inity
lea rcx, [rsp + 0x48]
call fcn.140037720
test eax, eax
jne 0x14001a689
inc qword [rsp + 0x48]
mov dword [rsp + 0x38], 3
mov dword [rsp + 0x3c], 0
mov ebx, 3
mov rdx, qword [rsp + 0xa0]
jmp 0x14001aa4e
lea rdx, [0x14003a959]
lea rcx, [rsp + 0x48]
call fcn.140037720
mov rdx, qword [rsp + 0xa0]
test eax, eax
je case.0x14001a64f.74
mov dword [rsp + 0x38], 4
mov eax, dword [rdx + 8]
inc eax
mov rcx, qword [rsp + 0xa8]
mov dword [rcx], eax
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x3c], 0
mov ebx, 4
cmp byte [rax], 0x28
jne 0x14001aa4e
lea rcx, [rsp + 0x48]
mov r8, qword [rsp + 0x210]
call fcn.140037bd0
mov rdx, qword [rsp + 0xa0]
mov ebx, eax
mov dword [rsp + 0x38], eax
jmp 0x14001aa4e
mov dword [rsp + 0x38], 6
mov qword [rsp + 0x48], rbx
mov rsi, qword [rsp + 0x210]
mov rbx, qword [rsp + 0x98]
jmp 0x1400196a8
mov eax, 0xf
sub eax, ecx
mov ecx, ebp
sub ecx, eax
mov r8, qword [0x14003a9c8]
mulsd xmm6, qword [r8 + rax*8]
movsxd rax, ecx
mulsd xmm6, qword [r8 + rax*8]
movsd qword [rsp + 0x50], xmm6
lea rax, [rsp + 0x38]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x50]
mov r8, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x210]
call fcn.14001ae20
test eax, eax
je 0x14001a7c2
mov rsi, qword [rsp + 0x210]
mov rbx, qword [rsp + 0x98]
mov r15, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x78]
jmp 0x1400196a8
movq r15, xmm6
shr r15, 0x20
xor eax, eax
jmp 0x140019b63
xor ebx, ebx
test r13d, r13d
sete bl
shl ebx, 4
add ebx, 0x11
mov dword [rsp + 0x38], ebx
mov rbp, qword [rsp + 0xc0]
cmp dword [rsp + 0x3c], 0
jne 0x14001a906
mov r15, rsi
mov rsi, rbp
mov dword [rsp + 0x3c], 0
mov rax, qword [rsp + 0x68]
mov ebp, eax
sub ebp, dword [rsp + 0x40]
je 0x14001a900
test ebp, ebp
jle 0x14001a8f0
mov rcx, r14
mov edx, ebp
call fcn.140036670
mov r14, rax
mov qword [rsp + 0x90], rax
jmp 0x14001a8fc
xor ebx, ebx
test r13d, r13d
sete bl
shl ebx, 4
add ebx, 0x11
mov dword [rsp + 0x38], ebx
test r13d, r13d
jne 0x14001a7ec
cmp dword [rsp + 0x84], 1
jg 0x14001a7ec
cmp dword [rsp + 0x3c], 0
jne 0x14001a7ec
mov eax, dword [rsp + 0x5c]
cmp eax, dword [rsp + 0xb8]
je 0x14001a7f7
mov rcx, rdi
mov edx, 1
call fcn.140036670
mov rdi, rax
mov rcx, rax
mov rdx, rsi
call fcn.140036830
test eax, eax
jle 0x14001a7f7
lea rax, [r14 + 0x14]
mov ecx, 0x11
jmp 0x14001aae3
lea rax, [r14 + 0x14]
test r13d, r13d
je 0x14001aacb
mov ebx, 0x11
cmp dword [rsp + 0x3c], 0
je 0x14001ac5d
mov ecx, dword [rsp + 0x40]
lea rdx, [r14 + 0x18]
mov r8d, ecx
sar r8d, 5
movsxd r8, r8d
lea r9, [r14 + r8*4]
add r9, 0x18
mov r8, rdx
cmp r8, r9
jae 0x14001ac3e
cmp dword [r8], 0xffffffff
lea r8, [r8 + 4]
je 0x14001a8d8
jmp 0x14001ac5d
mov edx, ebp
neg edx
mov rcx, r14
call fcn.1400378e0
sub dword [rsp + 0x44], ebp
mov rbp, rsi
mov rsi, r15
mov eax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0xa8]
mov dword [rcx], eax
mov rcx, rbp
call fcn.140036040
mov rcx, r12
call fcn.140036040
mov rcx, rsi
call fcn.140036040
mov rcx, qword [rsp + 0xe8]
call fcn.140036040
mov rcx, rdi
call fcn.140036040
mov eax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0xa0]
cmp eax, dword [rcx + 8]
mov r15, qword [rsp + 0x68]
jle 0x14001aa60
mov rcx, r14
call fcn.140036040
mov qword [rsp + 0x90], 0
call sub.msvcrt.dll__errno
mov r8, qword [rsp + 0xa0]
mov dword [rax], 0x22
mov eax, dword [r8 + 0xc]
and eax, 3
cmp eax, 1
mov rcx, qword [rsp + 0x210]
mov rdx, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x78]
je 0x14001aa19
cmp eax, 3
je 0x14001aa14
cmp eax, 2
jne 0x14001a9b2
test r9d, r9d
je 0x14001aa19
mov dword [rsp + 0x38], 0x11
mov eax, dword [r8 + 8]
mov dword [rdx], eax
mov esi, dword [r8]
lea eax, [rsi + 0x1f]
sar eax, 5
movsxd rdi, eax
test esi, esi
jle 0x14001a9f7
lea rax, [rcx + rdi*4]
lea rdx, [rcx + 4]
cmp rax, rdx
cmova rdx, rax
mov r8, rcx
not r8
add r8, rdx
and r8, 0xfffffffffffffffc
add r8, 4
mov dl, 0xff
call sub.msvcrt.dll_memset
mov ebx, 0x11
and esi, 0x1f
je 0x14001aa5d
mov cl, 0x20
sub cl, sil
mov rax, qword [rsp + 0x210]
shr dword [rax + rdi*4 - 4], cl
jmp 0x14001aa5d
test r9d, r9d
je 0x14001a9b2
mov dword [rsp + 0x38], 0xa3
mov eax, r15d
sar eax, 5
mov edx, r15d
and edx, 0x1f
cmp edx, 1
sbb eax, 0xffffffff
movsxd r8, eax
shl r8, 2
xor edx, edx
call sub.msvcrt.dll_memset
mov rdx, qword [rsp + 0xa0]
mov ebx, 0xa3
mov eax, dword [rdx + 8]
inc eax
mov rcx, qword [rsp + 0xa8]
mov dword [rcx], eax
xor r14d, r14d
cmp dword [rsp + 0x3c], 0
je 0x14001ac19
cmp dword [rsp + 0xb4], 0
je 0x14001abec
mov dword [r14 + 0x14], 0
mov dword [rsp + 0x38], 0x50
jmp 0x14001ac0e
mov r14, qword [rsp + 0x60]
lea rax, [r14 + 0x14]
mov r12, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc0]
mov dword [rax], 0
mov rax, qword [rsp + 0xb8]
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x38], 0x50
mov ebx, 0x50
jmp 0x14001a7ec
mov ebx, 0x21
cmp dword [rsp + 0x84], 1
jne 0x14001ac5d
mov ecx, 1
mov ebx, ecx
mov dword [rsp + 0x38], ecx
mov ecx, dword [rsp + 0x5c]
cmp ecx, dword [rsp + 0xb8]
jne 0x14001acd4
mov dword [rsp + 0x38], 0x21
cmp dword [rax], 1
jne 0x14001acca
mov eax, dword [r14 + 0x18]
cmp eax, 1
mov ecx, dword [rsp + 0xb4]
cmove ecx, eax
mov dword [rsp + 0xb4], ecx
jmp 0x14001acca
mov dword [rsp + 0x38], 0x11
mov eax, dword [rsp + 0x5c]
dec eax
mov dword [rsp + 0x44], eax
mov rdx, qword [rsp + 0x68]
mov dword [rsp + 0x40], edx
mov rcx, r14
call fcn.1400192f0
mov r14, rax
mov qword [rsp + 0x90], rax
mov ebx, 0x11
jmp 0x14001a7e4
cmp eax, 0xfffffffe
jle 0x14001abbd
mov dword [rsp + 0x40], 1
movabs rax, 0x100000001
mov rcx, qword [rsp + 0x60]
mov qword [rcx + 0x14], rax
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x3c], 1
cmp dword [rsp + 0xb4], 0
mov ebx, dword [rsp + 0x88]
mov rax, qword [rsp + 0xc8]
je 0x14001ac33
mov ecx, dword [rsp + 0x5c]
inc ecx
cmp ecx, edi
mov ecx, edi
mov dword [rsp + 0x5c], edi
jge 0x140019e45
mov r14, qword [rsp + 0x60]
mov qword [r14 + 0x14], 0
mov rax, qword [rsp + 0xa8]
mov dword [rax], edi
mov ebx, 0x50
mov r15, qword [rsp + 0x68]
cmp dword [rsp + 0xb4], 0
jne 0x14001aa79
mov eax, ebx
and eax, 0xfffffff8
xor ecx, ecx
cmp dword [r14 + 0x14], 0
setg cl
lea eax, [rax + rcx*2]
mov dword [rsp + 0x38], eax
test bl, 0x30
je 0x14001ac19
or eax, 0x40
mov dword [rsp + 0x38], eax
call sub.msvcrt.dll__errno
mov dword [rax], 0x22
mov rsi, qword [rsp + 0x210]
mov rbx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x78]
jmp 0x1400196a8
mov ecx, edi
mov dword [rsp + 0x5c], edi
jmp 0x140019e45
and ecx, 0x1f
je 0x14001acf9
mov r9d, 0xffffffff
shl r9d, cl
or r9d, dword [r8]
cmp r9d, 0xffffffff
je 0x14001acf9
mov dword [rsp + 0x38], ebx
mov ecx, dword [rsp + 0x84]
cmp ecx, dword [rsp + 0x68]
jge 0x14001ac79
cmp dword [rsp + 0x3c], 0
je 0x14001a7f7
test byte [r14 + 0x18], 1
je 0x14001a7ec
test r13d, r13d
je 0x14001ad34
mov rcx, r14
call fcn.140019220
mov r14, rax
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x40]
mov ecx, eax
neg ecx
and ecx, 0x1f
movsxd rdx, dword [r14 + 0x14]
bsr edx, dword [r14 + rdx*4 + 0x14]
xor edx, 0x1f
cmp edx, ecx
je 0x14001acc2
inc eax
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 0x21
mov ebx, 0x21
jmp 0x14001a7ec
mov rdx, qword [rsp + 0x68]
sub dword [rsp + 0x44], edx
mov dword [rsp + 0x40], edx
mov rcx, r14
call fcn.1400192f0
mov r14, rax
mov qword [rsp + 0x90], rax
jmp 0x14001a7ec
mov dword [rax], 1
mov dword [rdx], 1
mov dword [rsp + 0x40], 1
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xb8]
lea eax, [rax + rcx - 1]
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x38], 0x21
mov ebx, 0x21
jmp 0x14001a7f7
cmp dword [rsp + 0x84], 1
je 0x14001aaa7
lea rcx, [r14 + 0x18]
movsxd rax, dword [rax]
lea rax, [rcx + rax*4]
mov edx, dword [rcx]
test edx, edx
jne 0x14001ad64
mov dword [rcx], 0xffffffff
add rcx, 4
cmp rcx, rax
jb 0x14001ad4d
jmp 0x14001ad68
dec edx
mov dword [rcx], edx
mov dword [rsp + 0x38], 0x11
mov ebx, 0x11
jmp 0x14001a7ec