Function at 0x140108690
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x238]
sub rsp, 0x2f8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
mov rax, qword [0x1401af968]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov rax, qword [rbp + 0x260]
mov rbx, r9
movsd xmm6, qword [0x14013da50]
mov r11, r8
movsd xmm8, qword [0x140145fd0]
mov r9, rdx
movsd xmm7, qword [0x140139ba8]
mov rsi, rcx
mov qword [rsp + 0x78], rax
mov rdi, r8
xor eax, eax
mov qword [rsp + 0x50], r8
mov r13d, eax
mov dword [rsp + 0x40], eax
mov qword [rbp - 0x78], rdx
mov qword [rbp - 0x80], rcx
lea r14, [0x140000000]
nop dword [rax]
test bl, 3
jne 0x140108789
mov edx, dword [rbx]
mov ecx, edx
mov eax, edx
not ecx
xor eax, 0x25252525
and ecx, 0x80808080
sub eax, 0x1010101
test ecx, eax
jne 0x140108789
lea eax, [rdx - 0x1010101]
test ecx, eax
jne 0x1401087e6
test rsi, rsi
je 0x140108763
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp eax, 4
jl 0x140108789
add rbx, 4
mov dword [rdi], edx
add rdi, 4
mov edx, dword [rbx]
mov ecx, edx
mov eax, edx
not ecx
xor eax, 0x25252525
and ecx, 0x80808080
sub eax, 0x1010101
test ecx, eax
je 0x140108741
movzx eax, byte [rbx]
cmp al, 0x25
je 0x1401087eb
test al, al
je 0x14010a0bf
test rsi, rsi
je 0x1401087d6
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x1401087d6
add r13d, r8d
mov rdx, r9
mov rcx, r11
mov dword [rsp + 0x40], r13d
call rsi
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
mov r9, qword [rbp - 0x78]
movzx eax, byte [rbx]
mov byte [rdi], al
inc rdi
inc rbx
jmp 0x140108720
movzx eax, byte [rbx]
jmp 0x140108790
movsx eax, byte [rbx + 1]
xor r8d, r8d
inc rbx
mov dword [rsp + 0x68], r8d
sub eax, 0x20
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x34], r8d
mov r15d, 0xffffffff
mov dword [rsp + 0x38], r15d
mov r13d, r8d
mov dword [rsp + 0x48], r8d
mov r12d, r8d
cmp eax, 0x3f
ja case.0x140108846.40
mov r10d, 0x800
nop dword [rax]
cdqe
movzx eax, byte [r14 + rax + 0x10a154]
mov ecx, dword [r14 + rax*4 + 0x10a130]
add rcx, r14
jmp rcx
or r12d, 1
jmp 0x14010888a
or r12d, 2
jmp 0x14010888a
or r12d, 4
jmp 0x14010888a
or r12d, 8
jmp 0x14010888a
or r12d, 0x40
jmp 0x14010888a
bt r12d, 8
jae 0x14010887e
test r10d, r12d
mov eax, 0x1000
cmove eax, r10d
or r12d, eax
jmp 0x14010888a
bts r12d, 8
jmp 0x14010888a
bts r12d, 0xa
movsx eax, byte [rbx + 1]
inc rbx
sub eax, 0x20
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0x58], rbx
cmp eax, 0x3f
jbe 0x140108830
jmp 0x1401088b1
or r12d, 0x10
mov dword [rsp + 0x34], r12d
inc rbx
mov qword [rsp + 0x58], rbx
movzx eax, byte [rbx]
cmp al, 0x2a
jne 0x1401088e2
mov r10, qword [rsp + 0x78]
movzx eax, byte [rbx + 1]
add r10, 8
inc rbx
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x58], rbx
mov r13d, dword [r10 - 8]
mov dword [rsp + 0x68], r13d
jmp 0x140108915
cmp al, 0x30
jl 0x140108910
movzx edx, al
cmp dl, 0x39
ja 0x140108906
movzx eax, byte [rbx + 1]
lea r13d, [r13 + r13*4]
inc rbx
lea r13d, [r13 - 0x18]
lea r13d, [rdx + r13*2]
cmp al, 0x30
jge 0x1401088e6
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x58], rbx
mov r10, qword [rsp + 0x78]
cmp al, 0x2e
jne 0x140108979
movzx eax, byte [rbx + 1]
inc rbx
mov qword [rsp + 0x58], rbx
cmp al, 0x2a
jne 0x14010893f
movzx eax, byte [rbx + 1]
add r10, 8
inc rbx
mov qword [rsp + 0x78], r10
mov r15d, dword [r10 - 8]
jmp 0x14010896f
mov dword [rsp + 0x38], r8d
mov r15d, r8d
cmp al, 0x30
jl 0x140108979
nop dword [rax + rax]
movzx edx, al
cmp dl, 0x39
ja 0x14010896f
movzx eax, byte [rbx + 1]
lea r15d, [r15 + r15*4]
inc rbx
lea r15d, [r15 - 0x18]
lea r15d, [rdx + r15*2]
cmp al, 0x30
jge 0x140108950
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x58], rbx
movsx eax, al
lea r13, [0x140000000]
add eax, 0xffffffb7
cmp eax, 0x31
ja case.0x1401089a5.77
cdqe
movzx eax, byte [rax + r13 + 0x10a1a8]
mov ecx, dword [r13 + rax*4 + 0x10a194]
add rcx, r13
jmp rcx
inc rbx
bts r12d, 9
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0x58], rbx
cmp byte [rbx], 0x68
jne case.0x1401089a5.77
inc rbx
mov qword [rsp + 0x58], rbx
jmp case.0x1401089a5.77
inc rbx
mov qword [rsp + 0x58], rbx
cmp byte [rbx], 0x6c
jne case.0x1401089a5.77
or r12d, 0x20
inc rbx
mov qword [rsp + 0x58], rbx
jmp 0x140108a25
movzx eax, byte [rbx + 1]
lea rcx, [rbx + 1]
cmp al, 0x36
jne 0x140108a04
cmp byte [rbx + 2], 0x34
jne 0x140108a19
or r12d, 0x20
add rbx, 3
mov qword [rsp + 0x58], rbx
jmp 0x140108a25
cmp al, 0x33
jne 0x140108a19
cmp byte [rbx + 2], 0x32
jne 0x140108a19
add rbx, 3
mov qword [rsp + 0x58], rbx
jmp case.0x1401089a5.77
or r12d, 0x20
mov qword [rsp + 0x58], rcx
mov rbx, rcx
mov dword [rsp + 0x34], r12d
movsx edx, byte [rbx]
movzx esi, byte [0x1401af831]
mov byte [rsp + 0x30], sil
lea eax, [rdx - 0x41]
cmp eax, 0x37
ja case.0x140108a5b.77
cdqe
movzx eax, byte [rax + r13 + 0x10a210]
mov ecx, dword [r13 + rax*4 + 0x10a1dc]
add rcx, r13
jmp rcx
mov rax, qword [r10]
lea r14, str.null
add r10, 8
mov edx, 0xffffffff
test rax, rax
mov qword [rsp + 0x78], r10
cmovne r14, rax
test r15d, r15d
mov r12, r14
cmovns edx, r15d
test r14b, 3
je 0x140108aa5
nop dword [rax]
test edx, edx
je 0x140108ae4
cmp byte [r12], r8b
je 0x140108ae4
inc r12
dec edx
test r12b, 3
jne 0x140108a90
cmp edx, 4
jb 0x140108ad2
nop word [rax + rax]
mov eax, dword [r12]
lea ecx, [rax - 0x1010101]
not eax
and ecx, eax
test ecx, 0x80808080
jne 0x140108ad6
add r12, 4
add edx, 0xfffffffc
cmp edx, 4
jae 0x140108ab0
test edx, edx
je 0x140108ae4
cmp byte [r12], r8b
je 0x140108ae4
inc r12
add edx, 0xffffffff
jne 0x140108ad6
sub r12d, r14d
mov byte [rbp - 0x58], r8b
xor r13b, r13b
mov qword [rsp + 0x60], r12
mov byte [rbp - 0x60], r13b
mov edx, r8d
mov dword [rsp + 0x44], r12d
mov r15d, r8d
mov dword [rsp + 0x4c], r8d
mov esi, r8d
jmp 0x140109962
movzx eax, byte [r10]
add r10, 8
mov byte [rbp + 0x1af], al
mov qword [rsp + 0x78], r10
jmp 0x140109979
mov rax, qword [r10]
add r10, 8
mov r13d, dword [rsp + 0x40]
mov ecx, edi
mov rsi, qword [rbp - 0x80]
sub ecx, r11d
add ecx, r13d
mov qword [rsp + 0x78], r10
mov dword [rax], ecx
inc rbx
jmp 0x140108715
movsd xmm0, qword [r10]
lea rax, str.0123456789ABCDEFXP
movsd qword [rbp - 0x70], xmm0
lea r8, str.0123456789abcdefxp
cmp dl, 0x41
mov r14d, 6
movabs rcx, 0xfffffffffffff
cmove r8, rax
movzx eax, byte [rbp - 0x70]
mov byte [rbp - 0x68], al
add r10, 8
movzx eax, byte [rbp - 0x6f]
cmp r15d, 0xffffffff
mov byte [rbp - 0x67], al
movzx eax, byte [rbp - 0x6e]
cmove r15d, r14d
mov byte [rbp - 0x66], al
movzx eax, byte [rbp - 0x6d]
mov byte [rbp - 0x65], al
movzx eax, byte [rbp - 0x6c]
mov byte [rbp - 0x64], al
movzx eax, byte [rbp - 0x6b]
mov byte [rbp - 0x63], al
movzx eax, byte [rbp - 0x6a]
mov byte [rbp - 0x62], al
movzx eax, byte [rbp - 0x69]
mov byte [rbp - 0x61], al
mov rax, qword [rbp - 0x68]
mov r11, rax
mov qword [rsp + 0x78], r10
sar r11, 0x34
mov rdx, rax
and r11d, 0x7ff
shr rax, 0x3f
sub r11d, 0x3ff
and rdx, rcx
test al, al
je 0x140108bf7
bts r12d, 7
mov dword [rsp + 0x34], r12d
xor r9b, r9b
mov byte [rbp - 0x60], r9b
test r12b, r12b
jns 0x140108c0b
mov word [rbp - 0x60], 0x2d01
jmp 0x140108c25
test r12b, 4
je 0x140108c19
mov word [rbp - 0x60], 0x2001
jmp 0x140108c25
test r12b, 2
je 0x140108c28
mov word [rbp - 0x60], 0x2b01
mov r9b, 1
cmp r11d, 0xfffffc01
jne 0x140108c44
mov rax, rdx
neg rax
sbb ecx, ecx
and ecx, 0xfffffc02
mov r11d, ecx
jmp 0x140108c51
movabs rax, 0x10000000000000
or rdx, rax
shl rdx, 8
cmp r15d, 0xf
jge 0x140108c73
lea ecx, [r15*4]
movabs rax, 0x800000000000000
shr rax, cl
add rdx, rax
movsx rax, r9b
lea r9, [rbp - 0xf]
mov byte [rbp + rax - 0x5f], 0x30
movsx rax, byte [rbp - 0x60]
mov byte [rbp + rax - 0x5e], 0x78
mov rax, rdx
movzx r13d, byte [rbp - 0x60]
shr rax, 0x3c
add r13b, 2
shl rdx, 4
mov byte [rbp - 0x60], r13b
movzx eax, byte [rax + r8]
mov byte [rbp - 0x10], al
test r15d, r15d
je 0x140108cbd
movzx eax, byte [0x1401af830]
lea r9, [rbp - 0xe]
mov byte [rbp - 0xf], al
test r15d, r15d
lea rbx, [rbp - 0xf]
lea rax, [rbp - 0xe]
mov ecx, r15d
cmovne rbx, rax
cmp r15d, 0xd
jbe 0x140108ceb
mov ecx, 0xd
jle 0x140108ceb
lea eax, [r15 - 0xd]
xor r10d, r10d
mov dword [rsp + 0x48], eax
mov esi, eax
jmp 0x140108cfa
xor r10d, r10d
mov dword [rsp + 0x48], r10d
mov esi, r10d
test ecx, ecx
je 0x140108d1b
mov r9, rbx
nop dword [rax]
mov rax, rdx
shl rdx, 4
shr rax, 0x3c
movzx eax, byte [rax + r8]
mov byte [r9], al
inc r9
add ecx, 0xffffffff
jne 0x140108d00
movzx eax, byte [r8 + 0x11]
mov byte [rbp - 0x57], al
test r11d, r11d
jns 0x140108d31
mov byte [rbp - 0x56], 0x2d
neg r11d
jmp 0x140108d35
mov byte [rbp - 0x56], 0x2b
cmp r11d, 0x3e8
jl 0x140108d43
mov r8d, r14d
jmp 0x140108d60
cmp r11d, 0x64
jl 0x140108d51
mov r8d, 5
jmp 0x140108d60
cmp r11d, 0xa
mov r8d, r10d
setge r8b
add r8d, 3
mov eax, 0x66666667
mov byte [rbp - 0x58], r8b
imul r11d
lea r10, [rbp - 0x58]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
add r10, rax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r11b, cl
add r11b, 0x30
mov byte [r10], r11b
cmp r8d, 3
jbe 0x140108dd3
lea r11d, [r8 - 3]
nop
mov r8d, edx
lea r10, [r10 - 1]
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r10], r8b
sub r11, 1
jne 0x140108da0
mov eax, r9d
lea r14, [rbp - 0x10]
sub eax, ebx
mov r15d, 0x3000001
mov dword [rsp + 0x4c], eax
lea rax, [rbp - 0x50]
sub r9d, eax
xor edx, edx
lea r12d, [r9 - 0x40]
mov qword [rsp + 0x60], r12
mov dword [rsp + 0x44], r12d
jmp 0x14010995d
movsd xmm0, qword [r10]
lea rbx, str.0123456789abcdefxp
cmp dl, 0x47
lea rax, str.0123456789ABCDEFXP
cmove rbx, rax
add r10, 8
mov qword [rsp + 0x78], r10
cmp r15d, 0xffffffff
jne 0x140108e33
mov r15d, 6
jmp 0x140108e3f
test r15d, r15d
mov eax, 1
cmove r15d, eax
lea eax, [r15 - 1]
mov dword [rsp + 0x38], r15d
bts eax, 0x1f
lea r9, [rsp + 0x4c]
mov dword [rsp + 0x28], eax
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x44]
movsd qword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x70]
call fcn.140105940
test eax, eax
je 0x140108e7c
bts r12d, 7
mov dword [rsp + 0x34], r12d
mov eax, dword [rsp + 0x44]
mov edx, r15d
mov r14, qword [rsp + 0x70]
cmp eax, r15d
cmova eax, r15d
mov dword [rsp + 0x44], eax
mov r12d, eax
mov qword [rsp + 0x60], r12
cmp eax, 1
jbe 0x140108eca
test r15d, r15d
je 0x140108ec0
lea ecx, [r12 - 1]
cmp byte [rcx + r14], 0x30
jne 0x140108ec0
dec r15d
mov dword [rsp + 0x44], ecx
mov r12d, ecx
cmp ecx, 1
ja 0x140108ea0
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x60], r12
mov r15d, dword [rsp + 0x4c]
cmp r15d, 0xfffffffc
jle 0x140108f1b
cmp r15d, edx
jg 0x140108f1b
test r15d, r15d
jle 0x140108f02
cmp r15d, r12d
jge 0x140108ef4
mov r9d, r12d
sub r9d, r15d
mov dword [rsp + 0x38], r9d
jmp 0x1401093fd
xor ecx, ecx
mov r9d, ecx
mov dword [rsp + 0x38], ecx
jmp 0x1401093ff
mov r9d, dword [rsp + 0x38]
cmp r9d, r12d
cmovg r9d, r12d
sub r9d, r15d
mov dword [rsp + 0x38], r9d
jmp 0x1401093fd
mov edx, dword [rsp + 0x38]
cmp edx, r12d
jle 0x140108f2e
lea edx, [r12 - 1]
jmp 0x140108fc1
test edx, edx
je 0x140108fc1
dec edx
jmp 0x140108fc1
movsd xmm0, qword [r10]
lea rax, str.0123456789ABCDEFXP
cmp dl, 0x45
lea rbx, str.0123456789abcdefxp
lea r9, [rsp + 0x4c]
cmove rbx, rax
lea r8, [rbp - 0x50]
add r10, 8
lea rdx, [rsp + 0x44]
mov eax, 6
mov qword [rsp + 0x78], r10
cmp r15d, 0xffffffff
lea rcx, [rsp + 0x70]
cmove r15d, eax
mov eax, r15d
mov dword [rsp + 0x38], r15d
bts eax, 0x1f
mov dword [rsp + 0x28], eax
movsd qword [rsp + 0x20], xmm0
call fcn.140105940
mov r15d, dword [rsp + 0x4c]
mov r14, qword [rsp + 0x70]
mov edx, dword [rsp + 0x38]
test eax, eax
je 0x140108fb7
bts r12d, 7
mov dword [rsp + 0x34], r12d
mov r12d, dword [rsp + 0x44]
mov qword [rsp + 0x60], r12
mov eax, dword [rsp + 0x34]
xor r13b, r13b
mov byte [rbp - 0x58], 0
mov byte [rbp - 0x60], r13b
test al, al
jns 0x140108fdc
mov word [rbp - 0x60], 0x2d01
jmp 0x140108ff2
test al, 4
je 0x140108fe8
mov word [rbp - 0x60], 0x2001
jmp 0x140108ff2
test al, 2
je 0x140108ff5
mov word [rbp - 0x60], 0x2b01
mov r13b, 1
cmp r15d, 0x7000
jne 0x14010900c
xor eax, eax
mov r15d, eax
mov edx, eax
mov esi, eax
jmp 0x14010995d
movzx eax, byte [r14]
lea rsi, [rbp - 0xf]
mov byte [rbp - 0x10], al
test edx, edx
je 0x140109029
movzx eax, byte [0x1401af830]
lea rsi, [rbp - 0xe]
mov byte [rbp - 0xf], al
test edx, edx
lea rax, [rbp - 0xe]
lea rcx, [rbp - 0xf]
cmovne rcx, rax
lea eax, [r12 - 1]
cmp eax, edx
jbe 0x140109044
lea r12d, [rdx + 1]
cmp r12d, 1
jbe 0x140109073
mov rsi, rcx
inc r14
lea ecx, [r12 - 1]
nop word [rax + rax]
movzx eax, byte [r14]
lea r14, [r14 + 1]
mov byte [rsi], al
inc rsi
sub rcx, 1
jne 0x140109060
movzx eax, byte [rbx + 0xe]
mov r10d, edx
sub r10d, r12d
mov byte [rbp - 0x57], al
inc r10d
sub r15d, 1
mov dword [rsp + 0x48], r10d
jns 0x140109097
mov byte [rbp - 0x56], 0x2d
neg r15d
jmp 0x14010909b
mov byte [rbp - 0x56], 0x2b
xor r9d, r9d
mov eax, 0x66666667
cmp r15d, 0x64
setge r9b
imul r15d
add r9d, 4
sar edx, 2
mov eax, edx
mov byte [rbp - 0x58], r9b
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r15b, cl
add r15b, 0x30
mov byte [rbp + r9 - 0x58], r15b
nop word [rax + rax]
mov r8d, edx
mov dword [rsp + 0x4c], edx
dec r9d
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [rbp + r9 - 0x58], r8b
cmp r9d, 3
ja 0x1401090e0
mov r15d, 0x3000001
jmp 0x14010978d
movsd xmm1, qword [r10]
add r10, 8
mov qword [rsp + 0x78], r10
jmp 0x140109358
cmp dl, 0x42
lea r10, str.0123456789abcdefxp
lea rax, str.0123456789ABCDEFXP
cmove r10, rax
xor r13b, r13b
mov byte [rbp - 0x60], r13b
test r12b, 8
je 0x140109169
movzx eax, byte [r10 + 0xb]
mov r13b, 2
mov byte [rbp - 0x5e], al
mov word [rbp - 0x60], 0x3002
mov r8d, 0x180
jmp 0x1401091e7
xor r13b, r13b
lea r10, str.0123456789ABCDEFXP
mov byte [rbp - 0x60], r13b
test r12b, 8
je 0x14010918e
mov r13b, 1
mov word [rbp - 0x60], 0x3001
mov r8d, 0x330
jmp 0x1401091e7
and r12d, 0xffffffef
mov r15d, 0x10
or r12d, 0x20
mov dword [rsp + 0x38], r15d
mov dword [rsp + 0x34], r12d
cmp dl, 0x58
lea r10, str.0123456789abcdefxp
lea rax, str.0123456789ABCDEFXP
mov r8d, 0x440
cmove r10, rax
xor r13b, r13b
mov byte [rbp - 0x60], r13b
test r12b, 8
je 0x1401091e7
movzx eax, byte [r10 + 0x10]
mov r13b, 2
mov byte [rbp - 0x5e], al
mov word [rbp - 0x60], 0x3002
mov rbx, qword [rsp + 0x78]
add rbx, 8
mov qword [rsp + 0x78], rbx
test r12b, 0x20
je 0x140109201
mov r9, qword [rbx - 8]
jmp 0x140109205
mov r9d, dword [rbx - 8]
mov dword [rsp + 0x4c], 0
lea r14, [rbp + 0x1b0]
mov byte [rbp - 0x58], 0
test r9, r9
jne 0x140109245
xor r13b, r13b
mov byte [rbp - 0x60], r13b
test r15d, r15d
jne 0x140109245
mov edx, dword [rsp + 0x38]
mov r12d, r9d
mov qword [rsp + 0x60], r12
mov r15d, r9d
mov dword [rsp + 0x44], r9d
mov esi, r9d
jmp 0x1401099ac
mov r11d, 1
nop dword [rax + rax]
mov ecx, r8d
mov eax, r11d
shr ecx, 8
dec r14
shl eax, cl
mov ecx, r8d
cdqe
dec rax
shr rcx, 8
and rax, r9
shr r9, cl
movzx eax, byte [rax + r10]
mov byte [r14], al
test r9, r9
jne 0x14010928c
lea rax, [rbp + 0x1b0]
sub eax, r14d
cmp eax, r15d
jge 0x1401092af
test r12b, 0x40
je 0x140109250
inc r8d
mov eax, r8d
shr eax, 4
xor eax, r8d
test al, 0xf
jne 0x140109250
and r8d, 0xfffffff0
mov byte [r14 - 1], sil
dec r14
jmp 0x140109250
mov edx, dword [rsp + 0x38]
lea r12, [rbp + 0x1b0]
and r8d, 0xf0
mov qword [rsp + 0x78], rbx
shl r8d, 0x14
lea r15d, [rbp + 0x1b0]
sub r8d, r14d
add r15d, r8d
sub r12d, r14d
mov qword [rsp + 0x60], r12
mov dword [rsp + 0x44], r12d
jmp 0x140109959
add r10, 8
mov qword [rsp + 0x78], r10
test r12b, 0x20
je 0x14010930b
mov r11, qword [r10 - 8]
cmp dl, 0x75
je 0x14010932a
test r11, r11
jns 0x14010932a
neg r11
jmp 0x140109320
mov eax, dword [r10 - 8]
mov r11d, eax
cmp dl, 0x75
je 0x14010932a
test eax, eax
jns 0x14010932a
neg eax
mov r11d, eax
bts r12d, 7
mov dword [rsp + 0x34], r12d
bt r12d, 8
jae 0x1401097ac
cmp r11, 0x400
jae 0x140109343
mov r15d, r8d
jmp 0x140109350
cmp r15d, 0xffffffff
mov eax, 1
cmove r15d, eax
xorps xmm1, xmm1
cvtsi2sd xmm1, r11
bt r12d, 8
jae 0x1401093a1
bt r12d, 0xb
movaps xmm2, xmm8
jae 0x14010936d
movaps xmm2, xmm7
cmp r12d, 0x4000000
jae 0x1401093a1
comisd xmm2, xmm1
jbe 0x140109388
movaps xmm0, xmm2
xorps xmm0, xmm6
comisd xmm1, xmm0
ja 0x14010939c
add r12d, 0x1000000
divsd xmm1, xmm2
cmp r12d, 0x4000000
jb 0x140109376
mov dword [rsp + 0x34], r12d
mov eax, 6
lea r9, [rsp + 0x4c]
cmp r15d, 0xffffffff
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x44]
cmove r15d, eax
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x28], r15d
movsd qword [rsp + 0x20], xmm1
mov dword [rsp + 0x38], r15d
call fcn.140105940
mov r15d, dword [rsp + 0x4c]
mov r14, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x38]
test eax, eax
je 0x1401093f3
bts r12d, 7
mov dword [rsp + 0x34], r12d
mov r12d, dword [rsp + 0x44]
mov qword [rsp + 0x60], r12
xor ecx, ecx
mov eax, dword [rsp + 0x34]
xor r13b, r13b
mov byte [rbp - 0x58], 0
mov byte [rsp + 0x3c], r13b
mov byte [rbp - 0x60], r13b
test al, al
jns 0x14010941f
mov word [rbp - 0x60], 0x2d01
jmp 0x140109435
test al, 4
je 0x14010942b
mov word [rbp - 0x60], 0x2001
jmp 0x140109435
test al, 2
je 0x14010943d
mov word [rbp - 0x60], 0x2b01
mov r13b, 1
mov byte [rsp + 0x3c], r13b
cmp r15d, 0x7000
jne 0x140109450
mov r15d, ecx
mov edx, ecx
jmp 0x140109959
lea rsi, [rbp - 0x10]
test r15d, r15d
jg 0x140109532
movzx ecx, byte [rbp - 0xf]
lea rsi, [rbp - 0xf]
movzx eax, byte [0x1401af830]
test r9d, r9d
mov byte [rbp - 0x10], 0x30
cmovne ecx, eax
lea rax, [rbp - 0xe]
cmovne rsi, rax
mov byte [rbp - 0xf], cl
neg r15d
cmp r15d, r9d
cmovg r15d, r9d
mov r12d, r15d
test r15d, r15d
je 0x1401094a5
test sil, 3
je 0x1401094a5
mov byte [rsi], 0x30
inc rsi
sub r12d, 1
jne 0x140109493
cmp r12d, 4
jl 0x1401094d0
mov ebx, r12d
mov edx, 0x30303030
shr rbx, 2
mov rcx, rsi
mov r8, rbx
shl r8, 2
call sub.VCRUNTIME140.dll_memset
lea rsi, [rsi + rbx*4]
neg ebx
lea r12d, [r12 + rbx*4]
test r12d, r12d
je 0x1401094e8
mov r8d, r12d
mov dl, 0x30
mov rcx, rsi
mov ebx, r12d
call sub.VCRUNTIME140.dll_memset
add rsi, rbx
mov r8, qword [rsp + 0x60]
mov edx, dword [rsp + 0x38]
lea eax, [r15 + r8]
cmp eax, edx
jle 0x1401094ff
mov r8d, edx
sub r8d, r15d
mov ecx, r8d
test r8d, r8d
je 0x14010951f
sub r14, rsi
nop word [rax + rax]
movzx eax, byte [r14 + rsi]
mov byte [rsi], al
inc rsi
sub ecx, 1
jne 0x140109510
mov eax, edx
sub eax, r15d
mov r15d, 0x3000001
sub eax, r8d
jmp 0x140109710
mov r12d, eax
and r12d, 0x40
je 0x140109553
mov ebx, 0x258
mov eax, 0xaaaaaaab
sub ebx, r15d
mul ebx
shr edx, 1
lea eax, [rdx + rdx*2]
sub ebx, eax
jmp 0x140109555
mov ebx, ecx
mov r8, qword [rsp + 0x60]
mov edx, ecx
cmp r15d, r8d
jb 0x14010965e
movzx r9d, byte [rsp + 0x30]
nop dword [rax + rax]
test r12d, r12d
je 0x140109586
inc ebx
cmp ebx, 4
jne 0x140109586
mov byte [rsi], r9b
mov ebx, ecx
inc rsi
jmp 0x140109570
mov eax, edx
inc edx
movzx ecx, byte [rax + r14]
mov byte [rsi], cl
inc rsi
mov ecx, 0
cmp edx, r8d
jb 0x140109570
cmp edx, r15d
jae 0x14010962c
sub r15d, edx
test r12d, r12d
jne 0x1401095fa
test r15d, r15d
je 0x1401095c6
test sil, 3
je 0x1401095c6
mov byte [rsi], 0x30
inc rsi
add r15d, 0xffffffff
jne 0x1401095b4
cmp r15d, 4
jb 0x1401095fa
mov r14d, r15d
mov edx, 0x30303030
shr r14, 2
mov rcx, rsi
mov r8, r14
shl r8, 2
call sub.VCRUNTIME140.dll_memset
lea rsi, [rsi + r14*4]
nop dword [rax + rax]
add r15d, 0xfffffffc
sub r14, 1
jne 0x1401095f0
test r15d, r15d
je 0x14010962c
movzx r13d, byte [rsp + 0x30]
test r12d, r12d
je 0x140109618
inc ebx
cmp ebx, 4
jne 0x140109618
xor ebx, ebx
mov byte [rsi], r13b
jmp 0x14010961e
mov byte [rsi], 0x30
dec r15d
inc rsi
test r15d, r15d
jne 0x140109605
movzx r13d, byte [rsp + 0x3c]
mov edx, dword [rsp + 0x38]
lea rax, [rbp - 0x50]
mov r15d, esi
sub r15d, eax
add r15d, 0x2ffffc0
test edx, edx
je 0x140109714
movzx eax, byte [0x1401af830]
mov byte [rsi], al
inc rsi
mov dword [rsp + 0x48], edx
jmp 0x140109714
movzx r8d, byte [rsp + 0x30]
jmp 0x140109668
xor ecx, ecx
test r12d, r12d
je 0x14010967e
inc ebx
cmp ebx, 4
jne 0x14010967e
mov byte [rsi], r8b
mov ebx, ecx
inc rsi
jmp 0x140109668
lea r13, [rsi + 1]
mov eax, edx
inc edx
mov qword [rsp + 0x70], r13
movzx ecx, byte [rax + r14]
mov byte [rsi], cl
mov rcx, r13
mov rsi, r13
cmp edx, r15d
jb 0x140109666
movzx r13d, byte [rsp + 0x3c]
lea r10, [rbp - 0x50]
mov r8, qword [rsp + 0x60]
mov rax, rsi
sub eax, r10d
add eax, 0x2ffffc0
mov qword [rsp + 0x70], rax
test r9d, r9d
je 0x1401096ce
movzx eax, byte [0x1401af830]
mov byte [rsi], al
lea rsi, [rcx + 1]
mov eax, r8d
sub eax, r15d
cmp eax, r9d
jbe 0x1401096dd
lea r8d, [r15 + r9]
cmp edx, r8d
jae 0x140109702
mov ecx, edx
mov eax, r8d
add rcx, r14
sub eax, edx
mov edx, eax
nop
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rsi], al
inc rsi
sub rdx, 1
jne 0x1401096f0
mov eax, r15d
mov r15, qword [rsp + 0x70]
sub eax, r8d
add eax, r9d
mov dword [rsp + 0x48], eax
mov r9d, dword [rsp + 0x34]
bt r9d, 8
jae 0x14010978d
mov r8d, r9d
mov byte [rbp - 0x57], 0x20
shr r8d, 0xa
not r8b
and r8b, 1
mov byte [rbp - 0x58], r8b
cmp r9d, 0x1000000
jb 0x14010978d
mov r10d, 0x800
movzx edx, r8b
test r10d, r9d
lea rax, str._kMGT
lea rcx, str._KMGT
cmove rcx, rax
mov eax, r9d
shr rax, 0x18
inc r8b
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx - 0x57], al
mov eax, r9d
and eax, 0x1800
cmp eax, r10d
jne 0x140109789
movzx eax, r8b
inc r8b
mov byte [rbp + rax - 0x57], 0x69
mov byte [rbp - 0x58], r8b
lea rax, [rbp - 0x50]
sub esi, eax
lea r14, [rbp - 0x10]
xor edx, edx
lea r12d, [rsi - 0x40]
mov qword [rsp + 0x60], r12
mov dword [rsp + 0x44], r12d
jmp 0x140109959
xor ecx, ecx
lea r14, [rbp + 0x1b0]
mov ebx, r12d
mov r9d, ecx
and ebx, 0x40
movabs r12, 0xabcc77118461cefd
nop dword [rax + rax]
lea r10, [r14 - 8]
mov r8d, r11d
cmp r11, 0x5f5e100
jb 0x1401097f9
mov rax, r12
mul r11
mov r11, rdx
shr r11, 0x1a
imul eax, r11d, 0x5f5e100
sub r8d, eax
jmp 0x1401097fc
mov r11, rcx
test ebx, ebx
jne 0x14010982e
sub r14, 2
mov eax, 0x51eb851f
mul r8d
shr edx, 5
imul eax, edx, 0x64
sub r8d, eax
add r8d, r8d
movzx eax, word [r8 + r13 + 0x1af842]
mov r8d, edx
mov word [r14], ax
test edx, edx
jne 0x140109800
jmp 0x140109883
test r8d, r8d
je 0x140109883
nop dword [rax]
nop word [rax + rax]
mov eax, r9d
dec r14
inc r9d
cmp eax, 3
jne 0x140109859
mov r9d, ecx
mov byte [r14], sil
dec r10
jmp 0x14010987e
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r14], r8b
xor ecx, ecx
mov r8d, edx
test r8d, r8d
jne 0x140109840
test r11, r11
je 0x1401098bf
cmp r14, r10
je 0x1401097d0
test ebx, ebx
je 0x1401098ae
mov eax, r9d
inc r9d
cmp eax, 3
jne 0x1401098ae
dec r14
mov r9d, ecx
dec r10
mov byte [r14], sil
jmp 0x1401098b5
dec r14
mov byte [r14], 0x30
cmp r14, r10
jne 0x140109891
jmp 0x1401097d0
cmp byte [r14], 0x30
mov r12d, dword [rsp + 0x34]
jne 0x1401098d9
lea rax, [rbp + 0x1b0]
cmp r14, rax
je 0x1401098d9
inc r14
xor r13b, r13b
mov byte [rbp - 0x58], 0
mov byte [rbp - 0x60], r13b
test r12b, r12b
jns 0x1401098f1
mov word [rbp - 0x60], 0x2d01
jmp 0x14010990b
test r12b, 4
je 0x1401098ff
mov word [rbp - 0x60], 0x2001
jmp 0x14010990b
test r12b, 2
je 0x14010990e
mov word [rbp - 0x60], 0x2b01
mov r13b, 1
lea rax, [rbp + 0x1b0]
sub eax, r14d
mov r12d, eax
mov dword [rsp + 0x44], eax
mov qword [rsp + 0x60], r12
jne 0x14010993f
mov eax, 1
mov byte [r14 - 1], 0x30
dec r14
mov dword [rsp + 0x44], eax
mov r12d, eax
mov qword [rsp + 0x60], r12
mov edx, dword [rsp + 0x38]
lea r15d, [rax + 0x3000000]
mov rax, qword [rsp + 0x78]
test edx, edx
mov qword [rsp + 0x78], rax
cmovs edx, ecx
mov esi, dword [rsp + 0x48]
mov r11, qword [rsp + 0x50]
cmp edx, r12d
jge 0x1401099a9
jmp 0x1401099a6
mov byte [rbp + 0x1af], dl
mov dword [rsp + 0x34], r8d
mov dword [rsp + 0x68], r8d
mov r12d, 1
mov dword [rsp + 0x4c], r8d
xor r13b, r13b
mov dword [rsp + 0x44], r12d
mov byte [rbp - 0x60], r13b
lea r14, [rbp + 0x1af]
mov qword [rsp + 0x60], r12
mov esi, r8d
mov r15d, r8d
mov byte [rbp - 0x58], r8b
mov edx, r12d
xor r9d, r9d
mov r8d, dword [rsp + 0x68]
movsx eax, byte [rbp - 0x58]
add eax, esi
movsx ecx, r13b
mov esi, dword [rsp + 0x34]
add ecx, eax
add ecx, edx
cmp r8d, ecx
cmovl r8d, ecx
sub edx, r12d
sub r8d, ecx
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x68], r8d
test sil, 1
jne 0x140109a01
test sil, 0x10
je 0x1401099fa
cmp r8d, edx
mov dword [rsp + 0x68], r9d
cmovg edx, r8d
mov r8d, r9d
mov dword [rsp + 0x38], edx
jmp 0x140109a01
and esi, 0xffffffbf
mov dword [rsp + 0x34], esi
lea eax, [rdx + r8]
test eax, eax
je 0x140109d0b
mov r12, qword [rbp - 0x80]
test sil, 1
jne 0x140109b03
test r8d, r8d
jle 0x140109b03
mov esi, r8d
test r12, r12
je 0x140109a3c
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp r8d, eax
cmovg esi, eax
sub r8d, esi
mov dword [rsp + 0x68], r8d
test esi, esi
je 0x140109a59
test dil, 3
je 0x140109a59
mov byte [rdi], 0x20
inc rdi
sub esi, 1
jne 0x140109a48
cmp esi, 4
jl 0x140109a81
mov ebx, esi
mov edx, 0x20202020
shr rbx, 2
mov rcx, rdi
mov r8, rbx
shl r8, 2
call sub.VCRUNTIME140.dll_memset
lea rdi, [rdi + rbx*4]
neg ebx
lea esi, [rsi + rbx*4]
test esi, esi
je 0x140109a97
mov r8d, esi
mov dl, 0x20
mov rcx, rdi
mov ebx, esi
call sub.VCRUNTIME140.dll_memset
add rdi, rbx
mov r11, qword [rsp + 0x50]
test r12, r12
je 0x140109add
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x140109add
mov r13d, dword [rsp + 0x40]
mov rcx, r11
mov rdx, qword [rbp - 0x78]
add r13d, r8d
mov dword [rsp + 0x40], r13d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
mov r8d, dword [rsp + 0x68]
test r8d, r8d
jg 0x140109a24
movzx r9d, byte [0x1401af831]
movzx r13d, byte [rbp - 0x60]
mov esi, dword [rsp + 0x34]
mov byte [rsp + 0x30], r9b
jmp 0x140109b09
movzx r9d, byte [rsp + 0x30]
lea rbx, [rbp - 0x5f]
test r13b, r13b
je 0x140109bb1
movsx ecx, r13b
test r12, r12
je 0x140109b2e
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp ecx, eax
cmovg ecx, eax
sub r13b, cl
mov byte [rbp - 0x60], r13b
test ecx, ecx
je 0x140109b55
nop dword [rax]
movzx eax, byte [rbx]
inc rbx
mov byte [rdi], al
inc rdi
sub ecx, 1
jne 0x140109b40
movzx r13d, byte [rbp - 0x60]
test r12, r12
je 0x140109b9b
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x140109b9b
mov r13d, dword [rsp + 0x40]
mov rcx, r11
mov rdx, qword [rbp - 0x78]
add r13d, r8d
mov dword [rsp + 0x40], r13d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
movzx r13d, byte [rbp - 0x60]
test r13b, r13b
jne 0x140109b16
movzx r9d, byte [0x1401af831]
mov byte [rsp + 0x30], r9b
mov ebx, dword [rsp + 0x38]
mov r8d, r15d
shr r8d, 0x18
mov r12d, esi
mov dword [rsp + 0x70], r8d
and r12d, 0x40
je 0x140109be5
and r15d, 0xffffff
lea ecx, [r8 + 1]
xor edx, edx
lea eax, [rbx + r15]
mov r15d, r8d
div ecx
sub r15d, edx
jmp 0x140109bea
xor eax, eax
mov r15d, eax
test ebx, ebx
jle 0x140109d06
cmp qword [rbp - 0x80], 0
mov esi, ebx
je 0x140109c0a
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp ebx, eax
cmovg esi, eax
sub ebx, esi
mov dword [rsp + 0x38], ebx
test r12d, r12d
jne 0x140109c68
test esi, esi
je 0x140109c31
nop dword [rax]
test dil, 3
je 0x140109c31
mov byte [rdi], 0x30
inc rdi
sub esi, 1
jne 0x140109c20
cmp esi, 4
jl 0x140109c68
mov ebx, esi
mov edx, 0x30303030
shr rbx, 2
mov rcx, rdi
mov r8, rbx
shl r8, 2
call sub.VCRUNTIME140.dll_memset
mov r8d, dword [rsp + 0x70]
lea rdi, [rdi + rbx*4]
movzx r9d, byte [rsp + 0x30]
neg ebx
lea esi, [rsi + rbx*4]
mov ebx, dword [rsp + 0x38]
test esi, esi
je 0x140109c97
xor ebx, ebx
nop
test r12d, r12d
je 0x140109c88
mov eax, r15d
inc r15d
cmp eax, r8d
jne 0x140109c88
mov r15d, ebx
mov byte [rdi], r9b
jmp 0x140109c8b
mov byte [rdi], 0x30
inc rdi
sub esi, 1
jne 0x140109c70
mov ebx, dword [rsp + 0x38]
mov rsi, qword [rbp - 0x80]
mov r11, qword [rsp + 0x50]
test rsi, rsi
je 0x140109ced
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x140109ced
mov r13d, dword [rsp + 0x40]
mov rcx, r11
mov rdx, qword [rbp - 0x78]
add r13d, r8d
mov dword [rsp + 0x40], r13d
call rsi
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
movzx r9d, byte [0x1401af831]
mov byte [rsp + 0x30], r9b
mov r8d, dword [rsp + 0x70]
test ebx, ebx
jg 0x140109bf2
movzx r13d, byte [rbp - 0x60]
mov r12, qword [rsp + 0x60]
jmp 0x140109d0f
mov r12, qword [rsp + 0x60]
mov rsi, qword [rbp - 0x80]
lea rbx, [rbp - 0x5f]
mov qword [rsp + 0x70], rbx
test r13b, r13b
je 0x140109db8
movsx ecx, r13b
test rsi, rsi
je 0x140109d39
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp ecx, eax
cmovg ecx, eax
sub r13b, cl
mov byte [rbp - 0x60], r13b
test ecx, ecx
je 0x140109d6a
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rbx]
inc rbx
mov byte [rdi], al
inc rdi
sub ecx, 1
jne 0x140109d50
movzx r13d, byte [rbp - 0x60]
mov qword [rsp + 0x70], rbx
test rsi, rsi
je 0x140109daf
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x140109daf
mov r13d, dword [rsp + 0x40]
mov rcx, r11
mov rdx, qword [rbp - 0x78]
add r13d, r8d
mov dword [rsp + 0x40], r13d
call rsi
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
movzx r13d, byte [rbp - 0x60]
test r13b, r13b
jne 0x140109d21
test r12d, r12d
je 0x140109e6a
mov ecx, r12d
test rsi, rsi
je 0x140109dd9
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp r12d, eax
cmovg ecx, eax
sub r12d, ecx
cmp ecx, 4
jl 0x140109e03
mov edx, ecx
shr rdx, 2
mov eax, edx
neg eax
lea ecx, [rcx + rax*4]
nop
mov eax, dword [r14]
add r14, 4
mov dword [rdi], eax
add rdi, 4
sub rdx, 1
jne 0x140109df0
test ecx, ecx
je 0x140109e21
nop word [rax + rax]
movzx eax, byte [r14]
inc r14
mov byte [rdi], al
inc rdi
sub ecx, 1
jne 0x140109e10
test rsi, rsi
je 0x140109e61
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x140109e61
mov r13d, dword [rsp + 0x40]
mov rcx, r11
mov rdx, qword [rbp - 0x78]
add r13d, r8d
mov dword [rsp + 0x40], r13d
call rsi
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
test r12d, r12d
jne 0x140109dc1
mov r14d, dword [rsp + 0x48]
test r14d, r14d
je 0x140109f42
nop dword [rax + rax]
cmp qword [rbp - 0x80], 0
mov esi, r14d
je 0x140109e9a
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp r14d, eax
cmovg esi, eax
sub r14d, esi
test esi, esi
je 0x140109eb2
test dil, 3
je 0x140109eb2
mov byte [rdi], 0x30
inc rdi
sub esi, 1
jne 0x140109ea1
cmp esi, 4
jl 0x140109eda
mov ebx, esi
mov edx, 0x30303030
shr rbx, 2
mov rcx, rdi
mov r8, rbx
shl r8, 2
call sub.VCRUNTIME140.dll_memset
lea rdi, [rdi + rbx*4]
neg ebx
lea esi, [rsi + rbx*4]
test esi, esi
je 0x140109ef0
mov r8d, esi
mov dl, 0x30
mov rcx, rdi
mov ebx, esi
call sub.VCRUNTIME140.dll_memset
add rdi, rbx
mov rsi, qword [rbp - 0x80]
mov r11, qword [rsp + 0x50]
test rsi, rsi
je 0x140109f39
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x140109f39
mov r13d, dword [rsp + 0x40]
mov rcx, r11
mov rdx, qword [rbp - 0x78]
add r13d, r8d
mov dword [rsp + 0x40], r13d
call rsi
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
test r14d, r14d
jne 0x140109e80
cmp byte [rbp - 0x58], 0
lea rbx, [rbp - 0x57]
mov qword [rsp + 0x70], rbx
je 0x140109fcb
movsx ecx, byte [rbp - 0x58]
test rsi, rsi
je 0x140109f69
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp ecx, eax
cmovg ecx, eax
sub byte [rbp - 0x58], cl
test ecx, ecx
je 0x140109f85
movzx eax, byte [rbx]
inc rbx
mov byte [rdi], al
inc rdi
sub ecx, 1
jne 0x140109f70
mov qword [rsp + 0x70], rbx
test rsi, rsi
je 0x140109fc5
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x140109fc5
mov r13d, dword [rsp + 0x40]
mov rcx, r11
mov rdx, qword [rbp - 0x78]
add r13d, r8d
mov dword [rsp + 0x40], r13d
call rsi
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f3
cmp byte [rbp - 0x58], 0
jne 0x140109f51
mov eax, dword [rsp + 0x34]
test al, 1
je 0x14010a0a9
mov r13d, dword [rsp + 0x68]
test r13d, r13d
jle 0x14010a0a9
mov r14d, dword [rsp + 0x40]
nop word [rax + rax]
cmp qword [rbp - 0x80], 0
mov esi, r13d
je 0x14010a00a
mov eax, r11d
sub eax, edi
add eax, 0x200
cmp r13d, eax
cmovg esi, eax
sub r13d, esi
test esi, esi
je 0x14010a022
test dil, 3
je 0x14010a022
mov byte [rdi], 0x20
inc rdi
sub esi, 1
jne 0x14010a011
cmp esi, 4
jl 0x14010a04a
mov ebx, esi
mov edx, 0x20202020
shr rbx, 2
mov rcx, rdi
mov r8, rbx
shl r8, 2
call sub.VCRUNTIME140.dll_memset
lea rdi, [rdi + rbx*4]
neg ebx
lea esi, [rsi + rbx*4]
test esi, esi
je 0x14010a060
mov r8d, esi
mov dl, 0x20
mov rcx, rdi
mov ebx, esi
call sub.VCRUNTIME140.dll_memset
add rdi, rbx
mov rsi, qword [rbp - 0x80]
mov r11, qword [rsp + 0x50]
test rsi, rsi
je 0x14010a0a0
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x14010a0a0
mov rdx, qword [rbp - 0x78]
add r14d, r8d
mov rcx, r11
mov dword [rsp + 0x40], r14d
call rsi
mov qword [rsp + 0x50], rax
mov r11, rax
mov rdi, rax
test rax, rax
je 0x14010a0f0
test r13d, r13d
jne 0x140109ff0
mov rbx, qword [rsp + 0x58]
mov r13d, dword [rsp + 0x40]
inc rbx
mov r9, qword [rbp - 0x78]
jmp 0x140108715
test rsi, rsi
jne 0x14010a0c9
mov byte [rdi], sil
jmp 0x14010a0f3
mov r8d, edi
sub r8d, r11d
lea eax, [r8 + 0x1ff]
cmp eax, 0x200
jl 0x14010a0f3
add r13d, r8d
mov rdx, r9
mov rcx, r11
call rsi
mov r11, rax
mov rdi, rax
jmp 0x14010a0f3
mov r13d, r14d
sub edi, r11d
lea eax, [rdi + r13]
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.1401185a0
lea r11, [rsp + 0x2f8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret