Function at 0x14005182c
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc28
lea rax, [rdx + 2]
mov rbp, r9
mov qword [rsp + 0x138], r9
mov qword [rsp + 0x148], r9
mov r9, qword [rsp + 0xc90]
xor r11d, r11d
mov qword [rsp + 0x228], rax
mov r12, r8
mov qword [rsp + 0xf8], r8
mov r10, rcx
lea rax, [0x14011c638]
cmp r9, r11
jne 0x14005189e
cmp qword [rcx + 0x10], 0x3f
jne 0x14005189e
mov byte [rsp + 0xc70], 1
jmp 0x1400518ab
mov byte [rsp + 0xc70], r11b
cmp r9, r11
jne 0x1400518b6
mov r9, rax
mov qword [rsp + 0xc90], rax
cmp qword [r10 + 0x10], 0x3f
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov rax, r11
sete al
mov r8, r11
mov qword [rsp + 0x128], rax
mov al, byte [r10 + 0x10]
mov qword [rsp + 0xc0], r11
cmp al, 0x74
mov qword [rsp + 0x1b8], rdx
mov qword [rsp + 0x108], rcx
sete r8b
mov qword [rsp + 0x1f8], r8
cmp al, 0x73
je 0x14005190a
cmp al, 0x31
je 0x14005190a
mov eax, r11d
jmp 0x14005190d
movsx eax, al
mov edi, dword [r10 + 0x28]
mov r15d, dword [r10 + 0x50]
cdqe
mov qword [rsp + 0x158], rax
mov eax, edi
mov r13d, edi
and eax, 1
mov esi, edi
mov r14d, edi
mov dword [rsp + 0x38], eax
mov rax, rdx
or rdx, 0xffffffffffffffff
and r13d, 2
and esi, 4
and r14d, 0x10
and edi, 0x20
cmp rcx, r11
mov qword [rsp + 0x90], rcx
cmovl rax, rdx
lea rcx, [rsp + 0xd0]
mov edx, 0x3b
mov dword [rsp + 0xf0], r15d
mov qword [rsp + 0xd0], r9
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x150], rax
call fcn.1400f5c6c
mov rcx, qword [rsp + 0xd0]
cmp word [rcx], r11w
je 0x1400519b9
mov word [rcx], r11w
mov rcx, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xc80]
add rcx, 2
mov qword [rsp + 0xf8], r12
mov qword [rsp + 0xd0], rcx
cmp word [r12], r11w
mov qword [rsp + 0x40], rcx
lea rcx, [rsp + 0x40]
setne byte [rsp + 0xc88]
call fcn.1400f5c6c
mov rcx, qword [rsp + 0x40]
cmp word [rcx], r11w
je 0x140051a02
mov word [rcx], r11w
mov rcx, qword [rsp + 0x40]
mov r12, qword [rsp + 0xc80]
add rcx, 2
mov qword [rsp + 0xf8], r12
mov qword [rsp + 0x40], rcx
mov rax, qword [r10 + 0x30]
mov r8, qword [r10 + 0x38]
mov rdx, qword [r10 + 0x48]
mov qword [rsp + 0x198], rax
mov rax, qword [r10 + 0x40]
movabs r11, 0x7fffffffffffffff
mov qword [rsp + 0x210], rax
mov rax, r8
and rax, r11
mov qword [rsp + 0x1d0], rax
mov rax, rdx
and rax, r11
mov qword [rsp + 0x1c8], rax
movabs rax, 0x8000000000000000
and r8, rax
and rdx, rax
mov eax, 0x2a
mov qword [rsp + 0x1c0], r8
mov qword [rsp + 0x1e8], rdx
cmp ax, word [rcx]
jne 0x140051a7e
or esi, 1
add rcx, 2
mov qword [rsp + 0x40], rcx
mov ebx, 1
mov dword [rsp + 0xa8], 1
lea eax, [rbx + 0x7d]
cmp ax, word [r9]
jne 0x140051aab
or dword [rsp + 0xa8], 0xffffffff
add r9, 2
mov qword [rsp + 0xc90], r9
cmp ax, word [rcx]
jne 0x140051abc
or ebx, 0xffffffff
add rcx, 2
mov qword [rsp + 0x40], rcx
lea rcx, [rsp + 0x20]
call fcn.140063620
xor r10d, r10d
lea rcx, [rsp + 0x1a0]
mov qword [rsp + 0xb8], r10
call fcn.140063620
xor eax, eax
lea rcx, [rsp + 0x180]
lea edx, [rax + 0x46]
mov qword [rsp + 0x1a8], rax
mov qword [rsp + 0x1b0], rax
call fcn.140063694
xor edx, edx
lea ecx, [r15 + r15 + 1]
movzx eax, bl
mov r11d, 0x46
shl ecx, 8
mov qword [rsp + 0x188], r11
mov qword [rsp + 0x190], r11
or ecx, eax
mov rax, qword [rsp + 0x20]
mov r15d, edx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
lea eax, [rdx + 0x5c]
mov dword [rsp + 0xc8], ecx
mov dword [rsp + 0x100], edx
cmp ax, word [r12]
jne 0x140051b94
movzx eax, word [r12 + 2]
lea ecx, [rdx + 0x75]
or ax, 0x20
cmp cx, ax
jne 0x140051b6f
cmp word [r12 + 4], dx
jne 0x140051b6f
lea r15d, [r11 - 0x45]
jmp 0x140051b8c
mov ecx, 0x6c
cmp cx, ax
jne 0x140051b94
cmp word [r12 + 4], dx
jne 0x140051b94
mov dword [rsp + 0x100], 1
mov r12d, 1
jmp 0x140051b97
mov r12d, edx
mov rax, qword [rsp + 0x128]
lea rcx, [rsp + 0x60]
neg rax
mov eax, 4
sbb ebx, ebx
neg ebx
add ebx, eax
cmp qword [rsp + 0x158], rdx
cmovne ebx, eax
call fcn.140063344
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
movsxd rcx, ebx
movsxd rax, r15d
movsxd rbx, r14d
movsxd r14, r12d
mov qword [rsp + 0x208], rax
movsxd rax, r13d
mov qword [rsp + 0x130], rcx
mov ecx, dword [rsp + 0xf0]
mov qword [rsp + 0x140], rax
movsxd rax, esi
mov qword [rsp + 0x178], rax
movsxd rax, edi
xor edi, edi
mov qword [rsp + 0x218], rax
lea eax, [rcx + rcx + 1]
mov qword [rsp + 0x1f0], rbx
movsxd r13, eax
mov qword [rsp + 0xb0], r14
lea r12d, [rdi + 0xd]
mov qword [rsp + 0x118], r13
lea rcx, [rsp + 0x288]
mov esi, 0xa
call fcn.14004f934
mov rax, rbp
mov dword [rsp + 0x2a8], edi
mov qword [rsp + 0x120], rax
mov dword [rsp + 0x2ac], edi
mov dword [rsp + 0x2b0], 1
mov dword [rsp + 0x280], edi
mov word [rsp + 0x48], di
cmp rbx, rdi
je 0x140051cb9
cmp word [rbp], di
je 0x140051cb9
cmp r12w, word [rax]
je 0x140051ca2
cmp si, word [rax]
je 0x140051ca2
add rax, 2
mov qword [rsp + 0x120], rax
cmp word [rax], di
jne 0x140051c84
jmp 0x140051cb9
movzx ecx, word [rax]
mov word [rax], di
add rax, 2
mov word [rsp + 0x48], cx
mov qword [rsp + 0x120], rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, [rsp + 0xe0]
movsxd rbx, eax
mov rax, rbx
mov qword [rsp + 0x1e0], rbx
cqo
idiv r13
lea rdx, [rbx + 0xa]
inc rax
mov qword [rsp + 0x1d8], rax
call fcn.140063694
mov rcx, qword [rsp + 0xe0]
lea r11d, [rbx + 1]
mov rdx, rbp
movsxd r8, r11d
add r8, r8
call fcn.14001d78c
mov rbp, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xf8]
lea r15, [rbp + rbx*2]
mov qword [rsp + 0x50], rbp
mov word [rbp + rbx*2 + 6], di
mov word [rbp + rbx*2 + 4], di
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0xe8], rdi
mov word [r15 + 2], di
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x220], rdi
mov qword [rsp + 0x200], rdi
mov rsi, rbp
mov r13, rbp
mov qword [rsp + 0x58], rbp
mov r12, rbp
mov qword [rsp + 0x98], rbp
mov dword [rsp + 0xd8], edi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cdqe
mov qword [rsp + 0x168], rax
cmp qword [rsp + 0x1f8], rdi
jne 0x140051da6
cmp qword [rsp + 0x158], rdi
jne 0x140051da6
cmp r14, rdi
je 0x140052439
mov rax, qword [rsp + 0x30]
mov r14, qword [rsp + 0x28]
sub rax, r14
sar rax, 1
cmp rbx, rax
jl 0x140051e06
mov rax, r14
lea rcx, [rsp + 0x20]
sub rax, qword [rsp + 0x20]
sar rax, 1
lea rbx, [rax + rax]
mov rdi, rbx
sub rdi, qword [rsp + 0x20]
add rdi, r14
sar rdi, 1
lea rdx, [rdi + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea rax, [r11 + rdi*2 + 0x800]
lea r14, [rbx + r11]
xor edi, edi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0xb0], rdi
je 0x140051ea6
lea r13, [0x14011c638]
cmp qword [rsp + 0x208], rdi
je 0x140051e54
cmp word [rbp], di
je 0x140051e9d
movzx ecx, word [rbp]
add rbp, 2
lea eax, [rcx - 0x61]
cmp ax, 0x19
ja 0x140051e44
mov eax, 0xffdf
and cx, ax
mov word [r14], cx
add r14, 2
cmp word [rbp], di
jne 0x140051e2b
jmp 0x140051e98
movsxd rax, dword [rsp + 0x100]
cmp rax, rdi
je 0x140051e9d
cmp word [rbp], di
je 0x140051e9d
mov r15d, 0x20
movzx ecx, word [rbp]
add rbp, 2
lea eax, [rcx - 0x41]
cmp ax, 0x19
ja 0x140051e82
or cx, r15w
mov word [r14], cx
add r14, 2
cmp word [rbp], di
jne 0x140051e6d
mov r15, qword [rsp + 0x88]
mov qword [rsp + 0x28], r14
mov word [r14], di
jmp 0x140052d2e
mov rdx, qword [rsp + 0x158]
cmp rdx, rdi
je 0x140052439
mov rax, qword [rsp + 0xc78]
mov ebx, edi
mov r11, rdi
mov qword [rsp + 0x80], rbp
mov rcx, rax
mov qword [rsp + 0x78], rax
cmp rdx, 0x31
jne 0x140051f16
mov qword [rsp + 0x900], rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rsp + 0xc80]
mov qword [rsp + 0x5e0], rcx
mov dword [rsp + 0x450], eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [rsp + 0x2c0], eax
mov ebx, 1
jmp 0x140052000
cmp word [rax], di
je 0x140051f96
lea r10, [rsp + 0x900]
mov r9, rdi
lea rsi, [0x14011c638]
cmp r9, 0x190
jge 0x140051f93
mov qword [r10], rcx
lea rcx, [rsp + 0x78]
mov edx, 0xa
mov qword [rsp + 0x5e0], rsi
mov dword [rsp + r9 + 0x2c0], edi
call fcn.1400f5c6c
mov rcx, qword [rsp + 0x78]
mov rax, rcx
sub rax, qword [r10]
sar rax, 1
mov dword [rsp + r9 + 0x450], eax
cmp word [rcx], di
je 0x140051f84
mov word [rcx], di
mov rcx, qword [rsp + 0x78]
add rcx, 2
mov qword [rsp + 0x78], rcx
inc ebx
add r10, 8
add r9, 4
cmp word [rcx], di
jne 0x140051f2d
mov rsi, rbp
mov rcx, qword [rsp + 0xc80]
mov qword [rsp + 0x78], rcx
cmp word [rcx], di
je 0x140052000
movsxd r9, ebx
cmp r11, r9
jge 0x140052000
mov qword [rsp + r11*8 + 0x5e0], rcx
lea rcx, [rsp + 0x78]
mov edx, 0xa
call fcn.1400f5c6c
mov rcx, qword [rsp + 0x78]
mov rax, rcx
sub rax, qword [rsp + r11*8 + 0x5e0]
sar rax, 1
mov dword [rsp + r11*4 + 0x2c0], eax
cmp word [rcx], di
je 0x140051ff8
mov word [rcx], di
mov rcx, qword [rsp + 0x78]
add rcx, 2
mov qword [rsp + 0x78], rcx
inc r11
cmp word [rcx], di
jne 0x140051fab
cmp ebx, edi
mov qword [rsp + 0x130], 8
jle 0x1400523db
cmp word [rbp], di
je 0x1400523db
movsxd rdi, ebx
mov qword [rsp + 0x58], rdi
xor r12d, r12d
cmp rdi, r12
mov r15, r12
jle 0x140052335
mov rax, qword [rsp + 0x58]
movsxd rdi, dword [rsp + r15*4 + 0x450]
cmp edi, r12d
jle 0x14005219e
mov rcx, qword [rsp + 0x1d0]
mov rbx, r12
mov r14, r12
cmp rcx, r12
je 0x140052099
cmp rbp, rsi
je 0x140052099
mov rax, rbp
mov rbx, rcx
sub rax, rsi
sar rax, 1
cmp rax, rcx
jl 0x140052194
mov r9d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x198]
mov r8, rcx
mov rcx, rbp
call fcn.14004f8e8
cmp rax, r12
jne 0x140052194
mov r9d, dword [rsp + 0x38]
mov rcx, qword [rsp + r15*8 + 0x900]
lea rdx, [rbp + rbx*2]
lea rsi, [rdx + rdi*2]
mov r8, rdi
mov qword [rsp + 0x110], rsi
call fcn.14004f8e8
cmp rax, r12
jne 0x14005218c
mov rax, qword [rsp + 0x1c8]
cmp rax, r12
je 0x1400520ff
cmp word [rsi], r12w
je 0x1400520ff
mov r9d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x210]
mov r8, rax
mov rcx, rsi
mov r14, rax
call fcn.14004f8e8
cmp rax, r12
jne 0x14005218c
mov rax, qword [rsp + 0x1c0]
movsxd rbp, dword [rsp + r15*4 + 0x2c0]
lea r13, [rdi + r14]
neg rax
mov rax, qword [rsp + 0x1e8]
sbb rsi, rsi
and rsi, rbx
neg rax
sbb r12, r12
xor edi, edi
add r13, rbx
and r12, r14
cmp qword [rsp + 0x90], rdi
jl 0x14005228c
mov rax, qword [rsp + 0x108]
cmp rax, rdi
jle 0x1400521b4
mov rbp, qword [rsp + 0x50]
mov r14, qword [rsp + 0x28]
dec rax
movsxd r8, r13d
mov rdx, rbp
mov rcx, r14
add r8, r8
mov qword [rsp + 0x108], rax
call fcn.14001d78c
mov rax, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x80]
lea rbp, [rbp + r13*2]
mov qword [rsp + 0x50], rbp
jmp 0x1400521a0
mov rsi, qword [rsp + 0x80]
mov rax, qword [rsp + 0x58]
mov r14, qword [rsp + 0x28]
xor edi, edi
inc r15
cmp r15, rax
jge 0x140052337
xor r12d, r12d
jmp 0x14005203a
mov rcx, qword [rsp + 0x30]
lea rax, [r14 + rbp]
mov r14, qword [rsp + 0x28]
add rbx, rax
sub rcx, r14
lea rax, [rbx + 1]
sar rcx, 1
cmp rax, rcx
jl 0x14005221d
lea rbx, [rbx + rbx + 2]
mov rdi, r14
lea rcx, [rsp + 0x20]
sub rbx, qword [rsp + 0x20]
sub rdi, qword [rsp + 0x20]
add rbx, r14
sar rdi, 1
sar rbx, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rax, [r11 + rbx*2 + 0x800]
xor edi, edi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rax
cmp rsi, rdi
je 0x14005223e
mov rdx, qword [rsp + 0x50]
movsxd r8, esi
mov rcx, r14
add r8, r8
call fcn.14001d78c
lea r14, [r14 + rsi*2]
mov qword [rsp + 0x28], r14
cmp rbp, rdi
jle 0x140052262
mov rdx, qword [rsp + r15*8 + 0x5e0]
mov r8, rbp
mov rcx, r14
add r8, r8
call fcn.14001d78c
lea r14, [r14 + rbp*2]
mov qword [rsp + 0x28], r14
cmp r12, rdi
je 0x140052307
mov rdx, qword [rsp + 0x110]
movsxd r8, r12d
mov rcx, r14
add r8, r8
call fcn.14001d78c
lea r14, [r14 + r12*2]
mov qword [rsp + 0x28], r14
jmp 0x140052307
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
lea rax, [r8 + 1]
cmp rax, rdx
jl 0x1400522bb
add rdx, 0xa
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x70], rdx
shl rdx, 6
call fcn.140063424
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x50]
mov rcx, r8
shl rcx, 6
lea rax, [rdx + r13*2]
add rcx, qword [rsp + 0x60]
inc r8
mov qword [rsp + 0x68], r8
mov qword [rcx + 8], rax
mov rax, qword [rsp + r15*8 + 0x5e0]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x110]
mov qword [rcx], rdx
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x28], rbp
mov qword [rcx + 0x30], rax
mov qword [rcx + 0x38], r12
mov rbp, qword [rsp + 0x50]
mov rax, qword [rsp + 0x150]
lea rbp, [rbp + r13*2]
mov qword [rsp + 0x50], rbp
cmp rax, 1
je 0x1400523c6
dec rax
mov qword [rsp + 0x150], rax
jmp 0x1400523a8
xor edi, edi
cmp qword [rsp + 0x90], rdi
jl 0x14005239f
mov rax, qword [rsp + 0x30]
sub rax, r14
and rax, 0xfffffffffffffffe
cmp rax, 2
jg 0x14005238e
sub r14, qword [rsp + 0x20]
lea rcx, [rsp + 0x20]
lea rbx, [r14 + 2]
mov rdi, r14
sar rbx, 1
sar rdi, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea rax, [r11 + rbx*2 + 0x800]
lea r14, [r11 + rdi*2]
xor edi, edi
mov qword [rsp + 0x30], rax
movzx eax, word [rbp]
mov word [r14], ax
add r14, 2
mov qword [rsp + 0x28], r14
add rbp, 2
mov qword [rsp + 0x50], rbp
cmp word [rbp], di
mov r14, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x58]
jne 0x140052026
xor edi, edi
mov r14, qword [rsp + 0x28]
mov r12, qword [rsp + 0x98]
mov r15, qword [rsp + 0x88]
mov rax, qword [rsp + 0x30]
sub rax, r14
and rax, 0xfffffffffffffffe
cmp rax, 2
jg 0x14005242d
sub r14, qword [rsp + 0x20]
lea rcx, [rsp + 0x20]
lea rbx, [r14 + 2]
mov rdi, r14
sar rbx, 1
sar rdi, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rax, [r11 + rbx*2 + 0x800]
xor edi, edi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rax
mov word [r14], di
mov r13, rbp
jmp 0x140052d2e
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0xc78]
lea rcx, [rsp + 0x280]
call fcn.140051438
cmp eax, edi
jne 0x1400533ce
lea rcx, [rsp + 0x258]
mov qword [rsp + 0x248], rdi
mov qword [rsp + 0x250], rdi
call fcn.14004f934
lea rcx, [rsp + 0x258]
or r8d, 0xffffffff
mov edx, 0x100
mov dword [rsp + 0x230], edi
mov qword [rsp + 0x278], rdi
call fcn.14004fd6c
mov qword [rsp + 0x238], rdi
mov qword [rsp + 0x240], rdi
cmp word [rbp], di
je 0x140052cf2
xor r10d, r10d
lea r9, [rsp + 0xe8]
lea r8, [rsp + 0x230]
lea rcx, [rsp + 0x280]
mov rdx, rsi
mov r14, r10
call fcn.14004ff10
xor r11d, r11d
mov dword [rsp + 0xd8], eax
cmp eax, r11d
je 0x140052cb6
mov r15, qword [rsp + 0xe8]
cmp rsi, r15
je 0x140052ce0
mov rsi, qword [rsp + 0x1d0]
mov rbp, qword [rsp + 0x238]
mov r12, qword [rsp + 0x240]
cmp rsi, r11
mov qword [rsp + 0x80], rbp
jle 0x14005257c
cmp rbp, qword [rsp + 0x50]
je 0x14005257c
mov rax, rbp
sub rax, r13
sar rax, 1
cmp rax, rsi
jl 0x1400525af
mov r9d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x198]
lea rax, [rsi + rsi]
mov rbx, rbp
mov r8, rsi
sub rbx, rax
mov rcx, rbx
call fcn.14004f8e8
xor r11d, r11d
cmp rax, r11
jne 0x1400525af
cmp qword [rsp + 0x1c0], r11
mov rdi, rsi
cmove rbp, rbx
mov qword [rsp + 0x80], rbp
mov rbx, qword [rsp + 0x1c8]
cmp rbx, r11
jle 0x1400525d4
cmp word [r15], r11w
je 0x1400525d4
mov r9d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x198]
mov r8, rbx
mov rcx, r12
call fcn.14004f8e8
xor r11d, r11d
cmp rax, r11
je 0x1400525b5
lea rsi, [rbp + 2]
jmp 0x1400525e2
mov r14, rbx
cmp qword [rsp + 0x1e8], r11
jne 0x1400525d4
lea rax, [rbx + rbx]
add r12, rax
add r15, rax
mov qword [rsp + 0xe8], r15
sub qword [rsp + 0x108], 1
js 0x1400525e9
mov rsi, r15
xor edi, edi
jmp 0x140052cab
cmp qword [rsp + 0x128], r11
jne 0x140052a9d
mov r15, qword [rsp + 0xf8]
mov rsi, rbp
mov rax, r12
sub rsi, r13
sub rax, rbp
mov qword [rsp + 0x110], r11
sar rsi, 1
sar rax, 1
lea rbp, [rsi + rsi]
mov qword [rsp + 0x170], rax
add r13, rbp
cmp qword [rsp + 0x90], r11
jge 0x140052697
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
lea rax, [r8 + 1]
cmp rax, rdx
jl 0x140052661
add rdx, 0xa
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x70], rdx
shl rdx, 5
call fcn.140063424
mov r8, qword [rsp + 0x68]
mov rax, qword [rsp + 0x80]
shl r8, 5
add r8, qword [rsp + 0x60]
mov qword [rsp + 0x110], r8
mov qword [r8], rax
mov rax, qword [rsp + 0x28]
mov qword [r8 + 8], r12
sub rax, qword [rsp + 0x20]
sar rax, 1
mov qword [r8 + 0x10], rax
inc qword [rsp + 0x68]
lea rbx, [rsi + r14]
mov r14, qword [rsp + 0x28]
add rbx, rdi
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
lea rax, [rbx + 1]
sub rcx, r14
sar rcx, 1
cmp rax, rcx
jl 0x140052703
lea rbx, [rbx + rbx + 2]
mov rdi, r14
lea rcx, [rsp + 0x20]
sub rbx, qword [rsp + 0x20]
sub rdi, qword [rsp + 0x20]
add rbx, r14
sar rdi, 1
sar rbx, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rdi, [r11 + rbx*2 + 0x800]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
jmp 0x140052708
mov r11, qword [rsp + 0x20]
xor ebx, ebx
cmp qword [rsp + 0x90], rbx
jl 0x140052739
cmp rsi, rbx
jle 0x140052739
mov rdx, qword [rsp + 0x58]
movsxd r8, esi
mov rcx, r14
add r8, r8
call fcn.14001d78c
mov r11, qword [rsp + 0x20]
add r14, rbp
mov qword [rsp + 0x28], r14
cmp qword [rsp + 0xb0], rbx
je 0x1400527a5
mov rax, qword [rsp + 0xe8]
sub rax, r13
sar rax, 1
movsxd rbx, eax
mov rax, rdi
sub rax, r14
sar rax, 1
cmp rbx, rax
jl 0x1400527a3
add rbx, rbx
mov rdi, r14
lea rcx, [rsp + 0x20]
sub rbx, r11
sub rdi, r11
add rbx, r14
sar rdi, 1
sar rbx, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rdi, [r11 + rbx*2 + 0x800]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
xor ebx, ebx
cmp qword [rsp + 0x1f8], rbx
je 0x140052805
mov rdx, qword [rsp + 0x228]
mov rax, rdx
movzx ecx, word [rdx]
jmp 0x1400527cd
cmp cx, word [r13]
je 0x1400527d4
add rax, 2
mov cx, word [rax]
cmp cx, bx
jne 0x1400527bf
jmp 0x140052805
sub rax, rdx
sar rax, 1
movsxd rcx, eax
cmp rcx, qword [rsp + 0x168]
jge 0x140052805
mov rax, qword [rsp + 0xc80]
movzx ecx, word [rax + rcx*2]
mov word [r14], cx
mov r11, qword [rsp + 0x20]
add r14, 2
mov qword [rsp + 0x28], r14
mov rax, r15
cmp word [rax], bx
je 0x140052a5f
mov r12, qword [rsp + 0x170]
mov esi, 0x5c
cmp si, word [r15]
je 0x140052882
mov rax, rdi
sub rax, r14
and rax, 0xfffffffffffffffe
cmp rax, 4
jg 0x14005286d
sub r14, r11
lea rcx, [rsp + 0x20]
lea rbx, [r14 + 4]
mov rdi, r14
sar rbx, 1
sar rdi, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rdi, [r11 + rbx*2 + 0x800]
xor ebx, ebx
mov qword [rsp + 0x30], rdi
movzx eax, word [r15]
mov word [r14], ax
add r14, 2
add r15, 2
jmp 0x140052a4b
cmp word [r15 + 2], si
jne 0x1400528e3
mov rax, rdi
sub rax, r14
and rax, 0xfffffffffffffffe
cmp rax, 4
jg 0x1400528d2
sub r14, r11
lea rcx, [rsp + 0x20]
lea rbx, [r14 + 4]
mov rdi, r14
sar rbx, 1
sar rdi, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rdi, [r11 + rbx*2 + 0x800]
xor ebx, ebx
mov qword [rsp + 0x30], rdi
mov word [r14], si
add r14, 2
add r15, 4
jmp 0x140052a4b
movzx eax, word [r15 + 2]
mov r8d, 0x30
sub ax, r8w
cmp ax, 9
ja 0x140052a55
movzx ecx, word [r15 + 2]
lea edx, [r8 - 0x2f]
sub ecx, r8d
add r15, 4
movzx eax, word [r15]
sub ax, r8w
cmp ax, 9
ja 0x14005292e
movzx eax, word [r15]
lea ecx, [rcx + rcx*4]
add r15, 2
sub edx, 1
lea ecx, [rax + rcx*2 - 0x30]
jns 0x14005290c
cmp ecx, ebx
jne 0x14005299e
mov rax, rdi
sub rax, r14
sar rax, 1
cmp r12, rax
jl 0x14005297f
lea rbx, [r12 + r12]
mov rdi, r14
lea rcx, [rsp + 0x20]
sub rbx, r11
sub rdi, r11
add rbx, r14
sar rdi, 1
sar rbx, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rdi, [r11 + rbx*2 + 0x800]
xor ebx, ebx
mov qword [rsp + 0x30], rdi
mov rdx, qword [rsp + 0x80]
movsxd r8, r12d
mov rcx, r14
add r8, r8
call fcn.14001d78c
lea r14, [r14 + r12*2]
jmp 0x140052a4b
cmp ecx, dword [rsp + 0x230]
ja 0x140052a55
dec ecx
cmp ecx, dword [rsp + 0x230]
jae 0x1400534e6
mov rax, qword [rsp + 0x250]
add rcx, rcx
mov rsi, qword [rax + rcx*8 + 8]
mov rbp, qword [rax + rcx*8]
mov rax, rdi
mov qword [rsp + 0x200], rsi
sub rsi, rbp
sub rax, r14
sar rsi, 1
sar rax, 1
mov qword [rsp + 0x220], rbp
cmp rsi, rax
jl 0x140052a31
lea rbx, [rsi + rsi]
mov rdi, r14
lea rcx, [rsp + 0x20]
sub rbx, r11
sub rdi, r11
add rbx, r14
sar rdi, 1
sar rbx, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea r14, [r11 + rdi*2]
lea rdi, [r11 + rbx*2 + 0x800]
xor ebx, ebx
mov qword [rsp + 0x30], rdi
movsxd r8, esi
mov rdx, rbp
mov rcx, r14
add r8, r8
call fcn.14001d78c
lea r14, [r14 + rsi*2]
mov esi, 0x5c
mov r11, qword [rsp + 0x20]
mov qword [rsp + 0x28], r14
cmp word [r15], bx
jne 0x14005281e
xor edi, edi
cmp qword [rsp + 0x90], rdi
jge 0x140052a84
mov rcx, qword [rsp + 0x110]
mov rax, r14
sub rax, r11
sar rax, 1
sub rax, qword [rcx + 0x10]
mov qword [rcx + 0x18], rax
inc qword [rsp + 0xc0]
mov r15, qword [rsp + 0xe8]
mov word [r14], di
jmp 0x140052c87
mov r14, qword [rsp + 0x90]
mov qword [rsp + 0x138], rbp
mov qword [rsp + 0x148], r12
cmp r14, r11
jl 0x140052b2a
cmp qword [rsp + 0x140], r11
je 0x140052b2a
mov r9, qword [rsp + 0xc80]
lea rcx, [rsp + 0xc80]
mov edx, 0x3b
call fcn.1400f5c6c
mov rcx, qword [rsp + 0xc80]
cmp word [rcx], r11w
je 0x140052af9
mov word [rcx], r11w
add qword [rsp + 0xc80], 2
movzx ebx, word [r12]
cmp bx, r11w
je 0x140052b09
mov word [r12], r11w
mov rcx, qword [rsp + 0xc98]
mov r8, rbp
mov rdx, r9
call fcn.1400629b8
xor r11d, r11d
cmp bx, r11w
je 0x140052b2a
mov word [r12], bx
mov r10, qword [rsp + 0x50]
inc qword [rsp + 0xc0]
lea rax, [rbp + 2]
mov qword [rsp + 0x98], rax
mov rax, rbp
sub rax, r10
sar rax, 1
lea rcx, [rax + 1]
cqo
idiv qword [rsp + 0x118]
lea rdi, [rax + 1]
movsxd rax, dword [rsp + 0xa8]
cmp rax, r11
jg 0x140052b7d
cmp rdi, r11
jle 0x140052b7d
mov rsi, qword [rsp + 0x1d8]
sub rsi, rdi
jmp 0x140052b80
mov rsi, rdi
mov rax, qword [rsp + 0x40]
mov ebx, r11d
cmp word [rax], r11w
je 0x140052bde
mov r9d, dword [rsp + 0x1e0]
mov r8d, dword [rsp + 0xc8]
mov edx, ecx
mov rcx, r10
call fcn.140060b5c
movsxd rbx, eax
xor eax, eax
cmp r14, rax
jl 0x140052be3
mov rdx, rbx
cmp qword [rsp + 0x178], rax
je 0x140052bce
lea rcx, [rsp + 0x180]
call fcn.14006cc70
jmp 0x140052bdb
mov rcx, qword [rsp + 0x180]
call fcn.1400e6d74
xor r11d, r11d
cmp r14, r11
jge 0x140052c48
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + 1]
cmp rax, rcx
jl 0x140052c16
add rcx, 0xa
mov qword [rsp + 0x70], rcx
lea rdx, [rcx + rcx*4]
lea rcx, [rsp + 0x60]
shl rdx, 3
call fcn.140063424
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
lea r8, [rdx + rdx*4]
movsxd rax, ebx
mov qword [rcx + r8*8 + 0x10], rdi
xor edi, edi
mov qword [rcx + r8*8], rbp
mov qword [rcx + r8*8 + 8], r12
mov qword [rcx + r8*8 + 0x18], rax
mov qword [rcx + r8*8 + 0x20], rsi
inc qword [rsp + 0x68]
cmp r14, rdi
jl 0x140052c87
jmp 0x140052c4a
xor edi, edi
cmp qword [rsp + 0x178], rdi
je 0x140052c66
lea rcx, [rsp + 0x1a0]
mov rdx, rsi
call fcn.14006cc70
jmp 0x140052c87
mov rax, qword [rsp + 0xc80]
cmp word [rax], di
je 0x140052c7d
cmp qword [rsp + 0x140], rdi
jne 0x140052c87
cmp byte [rsp + 0xc88], dil
jne 0x140052ce2
mov rax, qword [rsp + 0x150]
mov rsi, r15
mov r13, r15
mov qword [rsp + 0x58], r15
cmp rax, 1
je 0x140052ce2
dec rax
mov qword [rsp + 0x150], rax
cmp word [rsi], di
jne 0x1400524b7
jmp 0x140052ce2
mov r15, qword [rsp + 0x88]
mov r12, qword [rsp + 0x98]
xor edi, edi
cmp qword [rsp + 0x218], rdi
je 0x140052cf2
cmp qword [rsp + 0x108], rdi
cmovle r13, r15
jmp 0x140052cf2
xor edi, edi
mov r15, qword [rsp + 0x88]
mov r12, qword [rsp + 0x98]
lea rcx, [rsp + 0x258]
call fcn.14004fb2c
mov rcx, qword [rsp + 0x250]
call fcn.1401049b4
mov rcx, qword [rsp + 0x248]
mov qword [rsp + 0x250], rdi
call fcn.1401049b4
mov r14, qword [rsp + 0x28]
mov qword [rsp + 0x248], rdi
mov rcx, qword [rsp + 0x90]
cmp qword [rsp + 0x128], rdi
je 0x140053052
cmp rcx, rdi
jge 0x140052f3a
mov rsi, qword [rsp + 0x68]
mov r13, qword [rsp + 0x60]
or rbx, 0xffffffffffffffff
add rsi, rcx
mov rcx, qword [rsp + 0x1b8]
mov qword [rsp + 0x168], r13
mov rax, rsi
sub rax, rcx
inc rax
cmp rcx, rdi
cmovg rbx, rax
cmp rsi, rdi
jl 0x140052f3a
cmp rbx, rdi
mov r14, rsi
cmovl rbx, rdi
sub r14, rbx
mov r15, rbx
lea rax, [r14 + 1]
mov qword [rsp + 0x170], r14
mov qword [rsp + 0xc0], rax
cmp qword [rsp + 0x140], rdi
je 0x140052e50
cmp rbx, rsi
jg 0x140052e50
lea rax, [rbx + rbx*4]
lea r12, [r13 + rax*8]
mov r9, qword [rsp + 0xc80]
cmp word [r9], di
je 0x140052e48
mov rbp, qword [r12 + 8]
lea rcx, [rsp + 0xc80]
mov edx, 0x3b
call fcn.1400f5c6c
mov rcx, qword [rsp + 0xc80]
cmp word [rcx], di
je 0x140052e09
mov word [rcx], di
add qword [rsp + 0xc80], 2
movzx edi, word [rbp]
xor r14d, r14d
cmp di, r14w
je 0x140052e1b
mov word [rbp], r14w
mov r8, qword [r12]
mov rcx, qword [rsp + 0xc98]
mov rdx, r9
call fcn.1400629b8
cmp di, r14w
je 0x140052e39
mov word [rbp], di
inc rbx
add r12, 0x28
mov rdi, r14
cmp rbx, rsi
jle 0x140052dcb
mov r14, qword [rsp + 0x170]
cmp qword [rsp + 0x178], rdi
je 0x140052eb3
cmp r15, rsi
jg 0x140052ee5
lea rax, [r15 + r15*4]
lea rdi, [r14 + 1]
lea rbx, [r13 + rax*8 + 0x18]
xor r13d, r13d
mov rdx, qword [rbx + 8]
lea rcx, [rsp + 0x1a0]
call fcn.14006cc70
mov r11, qword [rsp + 0x40]
cmp word [r11], r13w
je 0x140052e9f
mov rdx, qword [rbx]
lea rcx, [rsp + 0x180]
call fcn.14006cc70
add rbx, 0x28
sub rdi, 1
jne 0x140052e73
mov r13, qword [rsp + 0x168]
jmp 0x140052ee5
mov rax, qword [rsp + 0x40]
lea rbx, [rsi + rsi*4]
cmp word [rax], di
je 0x140052ed3
mov rdx, qword [r13 + rbx*8 + 0x18]
mov rcx, qword [rsp + 0x180]
call fcn.1400e6d74
mov rdx, qword [r13 + rbx*8 + 0x20]
lea rcx, [rsp + 0x1a0]
call fcn.14006cc70
lea rbx, [rsi + rsi*4]
lea rcx, [rsp + 0x20]
mov edx, 0x3c
mov rdi, qword [r13 + rbx*8]
mov rsi, qword [r13 + rbx*8 + 8]
lea r12, [rdi + 2]
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x148], rsi
call fcn.140063720
mov r8d, dword [r13 + rbx*8 + 0x20]
lea rdx, [0x14011d068]
mov rcx, rax
call qword [sym.imp.USER32.dll_wsprintfW]
mov r11, qword [r13 + rbx*8 + 0x20]
mov qword [rsp + 0xb8], r11
jmp 0x140052f4a
mov rsi, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x138]
xor ebp, ebp
cmp qword [rsp + 0x140], rbp
jne 0x140052f7e
mov rax, qword [rsp + 0xc80]
cmp word [rax], bp
je 0x140052f7e
mov rcx, qword [rsp + 0xc98]
mov word [rsi], bp
mov rdx, qword [rsp + 0xc80]
mov r8, rdi
call fcn.1400629b8
mov r13, qword [rsp + 0x118]
mov r10, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x1a0]
sub r12, r10
sar r12, 1
lea rax, [r12 + r13 - 1]
cqo
idiv r13
mov rbx, rax
mov eax, ebp
cmp word [rcx], bp
jne 0x1400533d8
mov rcx, qword [rsp + 0x40]
cmp word [rcx], bp
je 0x140053001
cmp dword [rsp + 0xd8], ebp
jle 0x140052fec
mov r9d, dword [rsp + 0x1e0]
mov r8d, dword [rsp + 0xc8]
mov edx, r12d
mov rcx, r10
call fcn.140060b5c
mov rcx, qword [rsp + 0x180]
jmp 0x140052ff9
mov rcx, qword [rsp + 0x180]
cmp word [rcx], bp
jne 0x140053001
movsxd rdx, eax
call fcn.1400e6d74
movsxd rax, dword [rsp + 0xa8]
cmp rax, rbp
jg 0x140053020
cmp rbx, rbp
jle 0x140053020
mov rdi, qword [rsp + 0x1d8]
sub rdi, rbx
jmp 0x140053023
mov rdi, rbx
lea rcx, [rsp + 0x20]
mov edx, 0x3c
mov qword [rsp + 0xb8], rdi
call fcn.140063720
lea rdx, [0x14011d068]
mov r8, rdi
mov rcx, rax
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x1400533e0
cmp rcx, rdi
jge 0x140053335
mov rdi, qword [rsp + 0x68]
or rbx, 0xffffffffffffffff
xor esi, esi
add rdi, rcx
mov rcx, qword [rsp + 0x1b8]
lea rdx, [rsp + 0x20]
mov rax, rdi
sub rax, rcx
inc rax
cmp rcx, rsi
lea rcx, [rsp + 0x160]
cmovg rbx, rax
call fcn.140070310
cmp rdi, rsi
mov r11, qword [rsp + 0x160]
mov r13, qword [rsp + 0x20]
mov qword [rsp + 0x160], r13
mov qword [rsp + 0x20], r11
jge 0x1400530c9
mov rdx, qword [rsp + 0xa0]
lea rcx, [rsp + 0x20]
call fcn.1400703e4
jmp 0x140053326
mov r12, qword [rsp + 0x130]
mov r10, qword [rsp + 0xa0]
cmp rbx, rsi
cmovle rbx, rsi
inc rdi
mov rax, r12
mov r8, rsi
mov rsi, qword [rsp + 0x60]
imul rax, rdi
mov qword [rsi + rax*8], r15
xor r15d, r15d
mov qword [rsi + rax*8 + 0x18], r15
cmp qword [rsp + 0x158], r15
jne 0x1400531ed
cmp rbx, rdi
jg 0x14005314a
mov rax, r12
mov rcx, rdi
mov r9, r12
sub rcx, rbx
shl r9, 3
imul rax, rbx
lea rdx, [rsi + rax*8 + 8]
inc rcx
mov rax, qword [rdx - 8]
sub rax, r10
mov r10, qword [rdx]
sar rax, 1
add rax, qword [rdx + 0x10]
add rdx, r9
add r8, rax
sub rcx, 1
jne 0x14005312d
lea rdx, [r8 + 6]
lea rcx, [rsp + 0x20]
call fcn.140063720
cmp rbx, rdi
mov rbp, rax
jg 0x140053322
mov rcx, qword [rsp + 0x130]
mov rax, qword [rsp + 0xa0]
sub rdi, rbx
shl r12, 3
imul rcx, rbx
lea rsi, [rsi + rcx*8 + 0x18]
inc rdi
mov rbx, qword [rsi - 0x18]
mov rdx, rax
mov rcx, rbp
sub rbx, rax
sar rbx, 1
movsxd r8, ebx
add r8, r8
call fcn.14001d78c
mov rax, qword [rsi - 0x10]
lea rbp, [rbp + rbx*2]
mov rbx, qword [rsi]
mov qword [rsp + 0xa0], rax
cmp rbx, r15
jle 0x1400531df
mov rax, qword [rsi - 8]
movsxd r8, ebx
mov rcx, rbp
lea rdx, [r13 + rax*2]
add r8, r8
call fcn.14001d78c
mov rax, qword [rsp + 0xa0]
lea rbp, [rbp + rbx*2]
add rsi, r12
sub rdi, 1
jne 0x140053187
jmp 0x140053322
cmp rbx, rdi
mov qword [rsi + rax*8 + 0x38], r15
mov qword [rsi + rax*8 + 0x28], r15
jg 0x14005323d
mov rax, r12
mov rdx, rdi
mov r9, r12
sub rdx, rbx
shl r9, 3
imul rax, rbx
lea rcx, [rsi + rax*8 + 0x28]
inc rdx
mov rax, qword [rcx - 0x28]
sub rax, r10
mov r10, qword [rcx - 0x20]
sar rax, 1
add rax, qword [rcx - 0x10]
add rax, qword [rcx + 0x10]
add rax, qword [rcx]
add rcx, r9
add r8, rax
sub rdx, 1
jne 0x140053218
lea rdx, [r8 + 6]
lea rcx, [rsp + 0x20]
call fcn.140063720
cmp rbx, rdi
mov rbp, rax
jg 0x140053322
mov rcx, qword [rsp + 0x130]
mov r13, qword [rsp + 0xa0]
sub rdi, rbx
shl r12, 3
imul rcx, rbx
lea rsi, [rsi + rcx*8 + 0x18]
inc rdi
mov rbx, qword [rsi - 0x18]
mov rdx, r13
mov rcx, rbp
sub rbx, r13
sar rbx, 1
movsxd r8, ebx
add r8, r8
call fcn.14001d78c
mov r13, qword [rsi - 0x10]
lea rbp, [rbp + rbx*2]
mov word [rbp], r15w
cmp qword [rsi], r15
jle 0x1400532c2
movsxd r8, dword [rsi]
mov rdx, qword [rsi - 8]
mov rcx, rbp
add r8, r8
call fcn.14001d78c
mov r11, qword [rsi]
lea rbp, [rbp + r11*2]
mov word [rbp], r15w
cmp qword [rsi + 0x10], r15
jle 0x1400532e9
movsxd r8, dword [rsi + 0x10]
mov rdx, qword [rsi + 8]
mov rcx, rbp
add r8, r8
call fcn.14001d78c
mov r11, qword [rsi + 0x10]
lea rbp, [rbp + r11*2]
mov word [rbp], r15w
cmp qword [rsi + 0x20], r15
jle 0x140053310
movsxd r8, dword [rsi + 0x20]
mov rdx, qword [rsi + 0x18]
mov rcx, rbp
add r8, r8
call fcn.14001d78c
mov r11, qword [rsi + 0x20]
lea rbp, [rbp + r11*2]
add rsi, r12
sub rdi, 1
mov word [rbp], r15w
jne 0x14005327a
mov word [r14], r15w
lea rcx, [rsp + 0x160]
call fcn.14005b104
jmp 0x1400533b2
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rsi, eax
mov rax, qword [rsp + 0x30]
sub rax, r14
sar rax, 1
cmp rsi, rax
jl 0x140053394
lea rbx, [rsi + rsi]
mov rdi, r14
lea rcx, [rsp + 0x20]
sub rbx, qword [rsp + 0x20]
sub rdi, qword [rsp + 0x20]
add rbx, r14
sar rdi, 1
sar rbx, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea rax, [r11 + rbx*2 + 0x800]
lea r14, [r11 + rdi*2]
xor edi, edi
mov qword [rsp + 0x30], rax
mov r8, rsi
mov rdx, r13
mov rcx, r14
add r8, r8
call fcn.14001d78c
lea r14, [r14 + rsi*2]
mov word [r14], di
mov qword [rsp + 0x28], r14
mov rbx, qword [rsp + 0x20]
mov r13, qword [rsp + 0x118]
xor ebp, ebp
mov rdi, rbx
mov qword [rsp + 0xb8], rbx
jmp 0x1400533e5
mov r13, qword [rsp + 0x118]
xor ebp, ebp
mov rdi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x20]
cmp byte [rsp + 0xc70], bpl
jne 0x1400536ac
xor edi, edi
cmp qword [rsp + 0x1f0], rdi
je 0x1400534f1
mov bp, word [rsp + 0x48]
mov rsi, qword [rsp + 0x120]
cmp bp, di
je 0x1400534a9
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov word [rsi - 2], bp
sub rax, rcx
and rax, 0xfffffffffffffffe
cmp rax, 6
jg 0x14005346d
sub rcx, rbx
mov rdi, rcx
lea rbx, [rcx + 6]
lea rcx, [rsp + 0x20]
sar rdi, 1
sar rbx, 1
lea rdx, [rbx + 0x408]
call fcn.140063720
mov r11, qword [rsp + 0x20]
lea rax, [r11 + rbx*2 + 0x800]
lea rcx, [r11 + rdi*2]
xor edi, edi
mov qword [rsp + 0x30], rax
mov word [rcx], bp
add rcx, 2
mov r12d, 0xd
mov qword [rsp + 0x28], rcx
cmp r12w, bp
jne 0x14005349f
lea eax, [r12 - 3]
cmp ax, word [rsi]
jne 0x14005349f
mov word [rcx], ax
add rcx, 2
add rsi, 2
mov qword [rsp + 0x28], rcx
mov word [rcx], di
mov rbx, qword [rsp + 0x20]
jmp 0x1400534af
mov r12d, 0xd
mov rbp, rsi
cmp word [rsi], di
je 0x1400534f1
lea rcx, [rsp + 0xe0]
call fcn.14005b104
lea rcx, [rsp + 0x288]
call fcn.14004fb2c
mov r14, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x1f0]
jmp 0x140051c37
mov ecx, 0x80004005
call fcn.14004f908
int3
mov r8, qword [rsp + 0x1a0]
cmp word [r8], di
jne 0x140053602
cmp dword [rsp + 0xf0], edi
jle 0x1400535ff
cmp qword [rsp + 0x128], rdi
jne 0x1400535ff
mov qword [rsp + 0xb0], rdi
mov rcx, rbx
mov qword [rsp + 0xc88], rbx
mov rdi, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
xor esi, esi
mov dword [rsp + 0xc78], eax
mov eax, dword [rsp + 0xc78]
mov rax, qword [rsp + 0xc88]
movzx ecx, word [rax]
cmp cx, si
je 0x1400535be
lea ebp, [rsi + 0x20]
cmp bp, cx
jne 0x14005356e
add rax, 2
mov qword [rsp + 0xc88], rax
lea r8, [rsp + 0xc70]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0xc88]
mov qword [rsp + 0xb0], rsi
mov dword [rsp + 0xc70], 2
call fcn.140064ab8
cmp eax, esi
jle 0x1400535be
mov al, byte [rsp + 0xb0]
mov byte [rdi], al
mov rax, qword [rsp + 0xc88]
inc rdi
mov cx, word [rax]
cmp cx, si
jne 0x14005355d
lea rcx, [0x14013e190]
mov dword [rdi], esi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r8, qword [rsp + 0x20]
mov rdx, qword [rsp + 0xc90]
mov rcx, qword [rsp + 0xc98]
sub rbx, rdi
lea r9, [rbx - 0x10]
call fcn.14001e6bc
lea rcx, [0x14013e190]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edi, edi
jmp 0x140053617
mov r8, rbx
mov rdx, qword [rsp + 0xc90]
mov rcx, qword [rsp + 0xc98]
call fcn.1400629b8
mov r8, qword [rsp + 0xd0]
cmp word [r8], di
je 0x14005363a
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc98]
call fcn.1400669c4
mov r8, qword [rsp + 0x180]
cmp word [r8], di
je 0x14005365a
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xc98]
call fcn.1400629b8
mov rbx, qword [rsp + 0x20]
lea rcx, [rsp + 0xe0]
call fcn.14005b104
lea rcx, [rsp + 0x288]
call fcn.14004fb2c
lea rcx, [rsp + 0x60]
call fcn.14005b104
lea rcx, [rsp + 0x180]
call fcn.14005b104
lea rcx, [rsp + 0x1a0]
call fcn.14005b104
lea rcx, [rsp + 0x20]
call fcn.14005b104
mov rax, rbx
jmp 0x1400536f7
lea rcx, [rsp + 0xe0]
call fcn.14005b104
lea rcx, [rsp + 0x288]
call fcn.14004fb2c
lea rcx, [rsp + 0x60]
call fcn.14005b104
lea rcx, [rsp + 0x180]
call fcn.14005b104
lea rcx, [rsp + 0x1a0]
call fcn.14005b104
lea rcx, [rsp + 0x20]
call fcn.14005b104
mov rax, rdi
add rsp, 0xc28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret