Function at 0x140015de0
Capabilities:
Read file on windows
Validate payment card number using luhn algorithm
Write file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xe0
mov qword [rbp - 0x11], 0xfffffffffffffffe
mov qword [rsp + 0x120], rbx
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x21], r9
mov rdi, r8
mov qword [rbp - 0x29], r8
mov qword [rbp - 0x19], rdx
mov rax, qword [0x1400404e0]
mov qword [rbp - 0x69], rax
mov rax, qword [0x14003e100]
mov qword [0x140045918], rax
xor r15d, r15d
movzx eax, r15w
mov dword [rbp - 0x6d], eax
lea esi, [r15 + 1]
mov ebx, dword [0x1400419e4]
mov ecx, ebx
call qword [sym.imp.MSVCR120.dll_malloc]
mov r13, rax
test rax, rax
jne 0x140015e6c
mov eax, 4
jmp 0x1400171fa
mov rcx, rbx
call qword [sym.imp.MSVCR120.dll_malloc]
mov r14, rax
mov qword [rbp - 0x41], rax
test rax, rax
je 0x140015e62
mov r12, rax
mov rcx, r15
lea r15, [0x140000000]
nop
movzx eax, byte [rcx + r15 + 0x31370]
mov byte [rbp + rcx - 9], al
lea rcx, [rcx + 1]
test al, al
jne 0x140015e90
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rbx, rax
mov qword [rbp - 0x51], rax
test rax, rax
mov r15d, 0
je 0x140015ef6
mov word [rax], r15w
mov qword [rax + 8], r15
lea rcx, [rbp - 9]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140015ef9
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rbx + 8], rax
lea rdx, [rbp - 9]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140015ef9
mov rbx, r15
mov edx, 0xa
mov rcx, rbx
call fcn.14002ab70
mov qword [rbp - 0x51], rax
test rax, rax
jne 0x140015f17
or eax, 0xffffffff
jmp 0x1400171fa
test rbx, rbx
je 0x140015f34
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140015f2b
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rbx
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rdx, r15
lea r15, str.tmpout.hlp
nop
movzx eax, byte [rdx + r15]
mov byte [rbp + rdx - 9], al
lea rdx, [rdx + 1]
test al, al
jne 0x140015f40
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rbx, rax
mov qword [rbp - 0x61], rax
test rax, rax
mov r15d, 0
je 0x140015fa2
mov word [rax], r15w
mov qword [rax + 8], r15
lea rcx, [rbp - 9]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140015fa5
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rbx + 8], rax
lea rdx, [rbp - 9]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140015fa5
mov rbx, r15
mov edx, 0xb
mov rcx, rbx
call fcn.14002ab70
mov r15, rax
mov qword [rbp - 0x61], rax
test rax, rax
je 0x140015f0f
mov rcx, rbx
call fcn.14002af10
xor edx, edx
mov word [0x1400419dc], dx
movzx eax, word [0x1400401b0]
mov word [rbp - 0x71], ax
mov rbx, qword [rbp - 0x69]
cmp ax, word [rbx + 0x80]
jge 0x140017144
movzx r14d, word [rsp + 0x30]
movzx r15d, word [rbp - 0x75]
nop word [rax + rax]
mov ecx, 1
mov word [0x1400401b4], cx
mov word [0x1400401d8], dx
mov word [rsp + 0x34], dx
mov word [rbp - 0x7d], dx
mov word [0x14003e118], ax
movsx edx, ax
movzx eax, word [rbx + 0x82]
imul edx, eax
add edx, dword [rbx + 0x28]
xor r8d, r8d
mov rcx, qword [0x1400401c8]
call fcn.14002ad10
cmp eax, 0xffffffff
je 0x140015f0f
movzx r8d, word [rbx + 0x82]
mov rcx, qword [0x1400401c8]
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x39]
mov rdx, qword [0x140045918]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1400160b2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140016096
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x14001609b
mov ecx, 0x106
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
movzx eax, word [rbx + 0x82]
cmp dword [rbp - 0x39], eax
jne 0x140015f0f
movzx r10d, word [0x1400401d8]
add eax, eax
mov dword [rbp - 0x31], eax
movzx r11d, word [0x1400401b4]
cmp r11w, ax
jge 0x1400170e8
mov rbx, qword [0x140045918]
mov r9, qword [0x14003e110]
nop
movzx eax, r11w
sar ax, 1
movsx ecx, r11w
and ecx, 0x80000001
jge 0x14001610a
dec ecx
or ecx, 0xfffffffe
inc ecx
movsx rax, ax
lea r8, [rax + rbx]
movzx edx, byte [r8]
movzx eax, dl
test ecx, ecx
jne 0x140016122
shr al, 4
jmp 0x140016124
and al, 0xf
cmp al, 0xd
jae 0x14001701e
cmp word [rsp + 0x34], 0
jne 0x14001702a
test al, al
jne 0x140016fff
movsx rax, r10w
cmp rax, 0x100
jae 0x140017136
lea rcx, [0x140045800]
mov byte [rax + rcx], 0
mov word [0x140040008], r10w
lea r9, [rbp - 0x7d]
movzx r8d, r11w
mov rdx, qword [0x14003e100]
mov rcx, qword [rbp - 0x69]
call fcn.140006f70
lea r8d, [rax + 1]
mov word [rsp + 0x38], r8w
movzx ecx, r8w
sar cx, 1
movsx eax, r8w
and eax, 0x80000001
jge 0x14001619e
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
movsx rax, cx
movzx ecx, byte [rax + rbx]
jne 0x1400161af
shr cl, 4
jmp 0x1400161b2
and cl, 0xf
movzx edx, cl
mov word [rbp - 0x79], dx
lea eax, [r8 + 1]
mov word [0x1400401b4], ax
mov word [0x1400401d8], dx
movzx eax, word [rbp - 0x7d]
mov word [0x1400401b8], ax
mov rcx, qword [rbp - 0x69]
call fcn.140006e60
cmp ax, 1
jne 0x140015f0f
lea r8, [0x140045730]
lea rdx, [0x140045800]
call fcn.1400073e0
nop dword [rax]
test si, si
je 0x14001639b
mov rbx, qword [rbp - 0x19]
mov r8, rbx
movzx edx, word [0x1400419e4]
mov rcx, r13
call fcn.14002a640
test ax, ax
jle 0x14001668a
mov rcx, rbx
call fcn.14001bd30
test ax, ax
je 0x140016287
movzx r8d, word [0x14003ee5c]
mov word [0x14003e1a4], r8w
movzx ecx, word [0x14003ee60]
imul ecx, r8d
mov eax, 0x51eb851f
imul ecx
mov ecx, edx
sar ecx, 5
mov eax, ecx
shr eax, 0x1f
add ecx, eax
add cx, word [0x14003ee48]
mov word [0x14003ee50], cx
lea rdx, [0x14003e1b0]
call qword [0x140041aa8]
test ax, ax
jne 0x140017103
mov rax, qword [rbp - 0x41]
mov ecx, 0x20
mov dword [rax], ecx
xor r9d, r9d
mov qword [rbp - 0x41], r12
mov rax, r13
mov rdx, r12
movzx ecx, byte [r13 + 1]
or cl, byte [r13]
je 0x140015e62
movzx r8d, word [r12]
cmp word [rax], r8w
jne 0x1400162db
mov rbx, rax
nop dword [rax]
lea rdx, [rdx + 2]
movzx ecx, word [rdx]
test cx, cx
je 0x1400162ed
add rax, 2
cmp word [rax], cx
je 0x1400162c0
mov rax, rbx
mov rdx, r12
add rax, 2
movzx ecx, byte [rax + 1]
or cl, byte [rax]
je 0x140015e62
jmp 0x1400162b3
test rbx, rbx
je 0x140015e62
movzx ecx, r9w
mov r8, rbx
sub r8, r13
test r8, r8
jle 0x140016327
mov rdx, r9
lea r9, [0x140044e30]
nop
movzx eax, byte [rdx + r13]
mov byte [rdx + r9], al
inc cx
movsx rdx, cx
cmp rdx, r8
jl 0x140016310
jmp 0x14001632e
lea r9, [0x140044e30]
movsx rax, cx
cmp rax, 0x800
jae 0x140017130
mov byte [rax + r9], 0
lea eax, [rcx + 1]
movsx rax, ax
cmp rax, 0x800
jae 0x14001712a
mov byte [rax + r9], 0
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.14002a440
test ax, ax
je 0x14001710d
movsx rcx, ax
add rcx, rbx
lea rdx, [rbp - 0x75]
call fcn.14002a440
test ax, ax
je 0x140015e62
xor ebx, ebx
mov esi, ebx
movzx r14d, word [rsp + 0x30]
movzx r15d, word [rbp - 0x75]
jmp 0x14001639d
xor ebx, ebx
lea rdx, [0x140044e30]
lea rcx, [0x140045730]
call fcn.140007550
test ax, ax
js 0x14001668a
mov word [0x1400402fa], r14w
mov ecx, 0x3fff
mov dword [0x1400402fc], ecx
mov word [0x140040300], r15w
mov word [0x140040302], bx
jle 0x140016517
mov word [rsp + 0x20], r15w
movzx r9d, r14w
lea rsi, [0x140045660]
mov rdx, rsi
lea rax, [0x140044e30]
mov rcx, rax
call fcn.14000ab90
lea rdx, [0x14003c2a4]
mov rcx, rsi
nop
cmp byte [rcx], 0
jne 0x14001641b
cmp byte [rcx + 1], 0
je 0x140016421
add rcx, 2
jmp 0x140016410
movzx eax, byte [rdx]
test al, al
jne 0x14001642d
cmp byte [rdx + 1], al
je 0x140016440
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016421
mov word [rcx], 0
mov rax, rsi
mov ecx, ebx
nop word [rax + rax]
cmp byte [rax], 0
jne 0x14001645b
cmp byte [rax + 1], 0
je 0x140016463
add rax, 2
inc ecx
jmp 0x140016450
add cx, cx
mov word [0x14003ee54], cx
movsx r8, cx
mov rcx, rbx
mov rbx, r8
test r8d, r8d
jle 0x14001648b
nop dword [rax]
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x140016480
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x35]
mov rdx, rsi
mov rax, qword [rbp - 0x61]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1400164e3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x1400164c7
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x1400164cc
mov ecx, 0x106
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
xor eax, eax
mov ecx, eax
test rbx, rbx
jle 0x1400164fb
nop dword [rax]
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x1400164f0
movsx eax, word [0x14003ee54]
cmp dword [rbp - 0x35], eax
jne 0x140015f0f
inc dword [rdi]
mov esi, 1
jmp 0x140016200
cmp r14w, word [0x1400402f0]
jne 0x140016551
cmp r15w, word [0x1400402f6]
jne 0x140016551
cmp cx, word [0x1400402f2]
jne 0x140016551
cmp bx, word [0x1400402f4]
jne 0x140016551
mov eax, 1
mov word [0x1400419dc], ax
mov dword [rbp - 0x6d], eax
jmp 0x140016682
mov word [rsp + 0x20], r15w
movzx r9d, r14w
lea rsi, [0x140045660]
mov rdx, rsi
lea rax, [0x140044e30]
mov rcx, rax
call fcn.14000ab90
lea rdx, [0x14003c2a4]
mov rcx, rsi
nop
cmp byte [rcx], 0
jne 0x14001658b
cmp byte [rcx + 1], 0
je 0x140016591
add rcx, 2
jmp 0x140016580
movzx eax, byte [rdx]
test al, al
jne 0x14001659d
cmp byte [rdx + 1], al
je 0x1400165b0
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016591
mov word [rcx], 0
mov rax, rsi
mov ecx, ebx
nop word [rax + rax]
cmp byte [rax], 0
jne 0x1400165cb
cmp byte [rax + 1], 0
je 0x1400165d3
add rax, 2
inc ecx
jmp 0x1400165c0
add cx, cx
mov word [0x14003ee54], cx
movsx r8, cx
mov rcx, rbx
mov rbx, r8
test r8d, r8d
jle 0x1400165fb
nop dword [rax]
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x1400165f0
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x59]
mov rdx, rsi
mov rax, qword [rbp - 0x61]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140016653
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140016637
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x14001663c
mov ecx, 0x106
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
xor eax, eax
mov ecx, eax
test rbx, rbx
jle 0x14001666b
nop dword [rax]
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x140016660
movsx eax, word [0x14003ee54]
cmp dword [rbp - 0x59], eax
jne 0x140015f0f
inc dword [rdi]
mov eax, 1
movzx esi, ax
jmp 0x140016200
mov eax, dword [rbp - 0x6d]
test ax, ax
jne 0x140016fdc
lea rcx, [0x140045730]
lea rdi, [0x140044d30]
mov rdx, rdi
movzx eax, byte [rcx]
test al, al
jne 0x1400166b3
cmp byte [rcx + 1], al
je 0x1400166c6
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
add rdx, 2
add rcx, 2
jmp 0x1400166a7
movzx eax, byte [rcx]
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
lea rdx, [0x14003c148]
mov rcx, rdi
nop dword [rax]
cmp byte [rcx], 0
jne 0x1400166eb
cmp byte [rcx + 1], 0
je 0x1400166f1
add rcx, 2
jmp 0x1400166e0
movzx eax, byte [rdx]
test al, al
jne 0x1400166fd
cmp byte [rdx + 1], al
je 0x140016710
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x1400166f1
mov word [rcx], 0
movzx edx, word [0x1400402f0]
xor r11d, r11d
movzx r8d, r11w
lea rbx, [0x140045900]
nop word [rax + rax]
movzx ecx, dx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
add cl, 0x30
movsx rax, r8w
mov byte [rax + rbx], cl
inc r8w
test dx, dx
jne 0x140016730
movsx rax, r8w
mov byte [rax + rbx], r11b
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045900]
test al, al
je 0x14001678b
nop dword [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], r11b
jne 0x140016780
dec r9w
cmp r11w, r9w
jge 0x1400167cf
nop word [rax + rax]
movsx rdx, r10w
movzx r8d, byte [rdx + rbx]
movsx rax, r9w
lea rcx, [rax + rbx]
movzx eax, byte [rcx]
mov byte [rdx + rbx], al
mov byte [rcx], r8b
inc r10w
dec r9w
cmp r10w, r9w
jl 0x1400167a0
movzx eax, byte [0x140045900]
lea r9, [0x140045630]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140016829
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x1400167f9
movzx ecx, al
jmp 0x14001680d
cmp al, 0xfe
ja 0x14001680a
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30350]
jmp 0x14001680d
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x1400167f0
xor r11d, r11d
lea rbx, [0x140045900]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x14001683e
cmp byte [rcx + 1], 0
je 0x140016844
add rcx, 2
jmp 0x140016833
movzx eax, byte [rdx]
test al, al
jne 0x140016850
cmp byte [rdx + 1], al
je 0x140016863
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016844
mov word [rcx], 0
lea rdx, [0x14003c148]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x14001687d
cmp byte [rcx + 1], 0
je 0x140016883
add rcx, 2
jmp 0x140016872
movzx eax, byte [rdx]
test al, al
jne 0x14001688f
cmp byte [rdx + 1], al
je 0x1400168a2
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016883
mov word [rcx], 0
movzx edx, word [0x1400402f2]
movzx r8d, r11w
nop dword [rax]
nop word [rax + rax]
movzx ecx, dx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
add cl, 0x30
movsx rax, r8w
mov byte [rax + rbx], cl
inc r8w
test dx, dx
jne 0x1400168c0
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045900]
test al, al
je 0x14001691b
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140016910
dec r9w
cmp r11w, r9w
jge 0x14001695f
nop word [rax + rax]
movsx rdx, r10w
movzx r8d, byte [rdx + rbx]
movsx rax, r9w
lea rcx, [rax + rbx]
movzx eax, byte [rcx]
mov byte [rdx + rbx], al
mov byte [rcx], r8b
inc r10w
dec r9w
cmp r10w, r9w
jl 0x140016930
movzx eax, byte [0x140045900]
lea r9, [0x140045630]
mov rdx, r9
mov r8, rbx
test al, al
je 0x1400169b9
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140016989
movzx ecx, al
jmp 0x14001699d
cmp al, 0xfe
ja 0x14001699a
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30350]
jmp 0x14001699d
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140016980
xor r11d, r11d
lea rbx, [0x140045900]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x1400169ce
cmp byte [rcx + 1], 0
je 0x1400169d4
add rcx, 2
jmp 0x1400169c3
movzx eax, byte [rdx]
test al, al
jne 0x1400169e0
cmp byte [rdx + 1], al
je 0x1400169f3
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x1400169d4
mov word [rcx], 0
lea rdx, [0x14003c148]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140016a0d
cmp byte [rcx + 1], 0
je 0x140016a13
add rcx, 2
jmp 0x140016a02
movzx eax, byte [rdx]
test al, al
jne 0x140016a1f
cmp byte [rdx + 1], al
je 0x140016a32
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016a13
mov word [rcx], 0
movzx edx, word [0x1400402f4]
movzx r8d, r11w
nop dword [rax]
nop word [rax + rax]
movzx ecx, dx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
add cl, 0x30
movsx rax, r8w
mov byte [rax + rbx], cl
inc r8w
test dx, dx
jne 0x140016a50
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045900]
test al, al
je 0x140016aab
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140016aa0
dec r9w
cmp r11w, r9w
jge 0x140016aef
nop word [rax + rax]
movsx rdx, r10w
movzx r8d, byte [rdx + rbx]
movsx rax, r9w
lea rcx, [rax + rbx]
movzx eax, byte [rcx]
mov byte [rdx + rbx], al
mov byte [rcx], r8b
inc r10w
dec r9w
cmp r10w, r9w
jl 0x140016ac0
movzx eax, byte [0x140045900]
lea r9, [0x140045630]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140016b49
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140016b19
movzx ecx, al
jmp 0x140016b2d
cmp al, 0xfe
ja 0x140016b2a
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30350]
jmp 0x140016b2d
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140016b10
xor r11d, r11d
lea rbx, [0x140045900]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140016b5e
cmp byte [rcx + 1], 0
je 0x140016b64
add rcx, 2
jmp 0x140016b53
movzx eax, byte [rdx]
test al, al
jne 0x140016b70
cmp byte [rdx + 1], al
je 0x140016b83
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016b64
mov word [rcx], 0
lea rdx, [0x14003c148]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140016b9d
cmp byte [rcx + 1], 0
je 0x140016ba3
add rcx, 2
jmp 0x140016b92
movzx eax, byte [rdx]
test al, al
jne 0x140016baf
cmp byte [rdx + 1], al
je 0x140016bc2
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016ba3
mov word [rcx], 0
movzx edx, word [0x1400402f6]
movzx r8d, r11w
nop dword [rax]
nop word [rax + rax]
movzx ecx, dx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
add cl, 0x30
movsx rax, r8w
mov byte [rax + rbx], cl
inc r8w
test dx, dx
jne 0x140016be0
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045900]
test al, al
je 0x140016c3b
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140016c30
dec r9w
cmp r11w, r9w
jge 0x140016c7f
nop word [rax + rax]
movsx rdx, r10w
movzx r8d, byte [rdx + rbx]
movsx rax, r9w
lea rcx, [rax + rbx]
movzx eax, byte [rcx]
mov byte [rdx + rbx], al
mov byte [rcx], r8b
inc r10w
dec r9w
cmp r10w, r9w
jl 0x140016c50
movzx eax, byte [0x140045900]
lea r9, [0x140045630]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140016cd9
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140016ca9
movzx ecx, al
jmp 0x140016cbd
cmp al, 0xfe
ja 0x140016cba
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30350]
jmp 0x140016cbd
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140016ca0
xor r11d, r11d
lea rbx, [0x140045900]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140016cee
cmp byte [rcx + 1], 0
je 0x140016cf4
add rcx, 2
jmp 0x140016ce3
movzx eax, byte [rdx]
test al, al
jne 0x140016d00
cmp byte [rdx + 1], al
je 0x140016d13
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016cf4
mov word [rcx], 0
lea rdx, [0x14003c148]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140016d2d
cmp byte [rcx + 1], 0
je 0x140016d33
add rcx, 2
jmp 0x140016d22
movzx eax, byte [rdx]
test al, al
jne 0x140016d3f
cmp byte [rdx + 1], al
je 0x140016d52
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016d33
mov word [rcx], 0
movzx edx, word [0x1400402f8]
movzx r8d, r11w
nop dword [rax]
nop word [rax + rax]
movzx ecx, dx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
add cl, 0x30
movsx rax, r8w
mov byte [rax + rbx], cl
inc r8w
test dx, dx
jne 0x140016d70
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045900]
test al, al
je 0x140016dcb
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140016dc0
dec r9w
cmp r11w, r9w
jge 0x140016e0f
nop word [rax + rax]
movsx rdx, r10w
movzx r8d, byte [rdx + rbx]
movsx rax, r9w
lea rcx, [rax + rbx]
movzx eax, byte [rcx]
mov byte [rdx + rbx], al
mov byte [rcx], r8b
inc r10w
dec r9w
cmp r10w, r9w
jl 0x140016de0
movzx eax, byte [0x140045900]
lea r9, [0x140045630]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140016e69
lea r11, [0x140000000]
mov r14d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140016e39
movzx ecx, al
jmp 0x140016e4e
cmp al, 0xfe
ja 0x140016e4b
movzx eax, al
movzx ecx, word [r11 + rax*2 + 0x30350]
jmp 0x140016e4e
mov ecx, r14d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140016e30
movzx r14d, word [rsp + 0x30]
xor r11d, r11d
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140016e7e
cmp byte [rcx + 1], 0
je 0x140016e84
add rcx, 2
jmp 0x140016e73
movzx eax, byte [rdx]
test al, al
jne 0x140016e90
cmp byte [rdx + 1], al
je 0x140016ea3
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016e84
mov word [rcx], 0
lea rdx, [0x14003c2a4]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140016ebd
cmp byte [rcx + 1], 0
je 0x140016ec3
add rcx, 2
jmp 0x140016eb2
movzx eax, byte [rdx]
test al, al
jne 0x140016ecf
cmp byte [rdx + 1], al
je 0x140016ee2
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016ec3
mov word [rcx], 0
mov rax, rdi
mov ecx, r11d
nop dword [rax]
cmp byte [rax], 0
jne 0x140016efb
cmp byte [rax + 1], 0
je 0x140016f03
add rax, 2
inc ecx
jmp 0x140016ef0
lea edi, [rcx + rcx]
mov rcx, r11
movsxd rbx, edi
lea r10, [0x140044d30]
test edi, edi
jle 0x140016f2c
nop word [rax + rax]
not byte [rcx + r10]
inc rcx
cmp rcx, rbx
jl 0x140016f20
mov qword [rsp + 0x20], r11
lea r9, [rbp - 0x49]
mov r8d, edi
mov rdx, r10
mov rax, qword [rbp - 0x51]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140016f85
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140016f69
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x140016f6e
mov ecx, 0x106
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
xor eax, eax
mov ecx, eax
test edi, edi
jle 0x140016fb1
lea rdx, [0x140044d30]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
not al
mov byte [rcx + rdx], al
inc rcx
cmp rcx, rbx
jl 0x140016fa0
cmp dword [rbp - 0x49], edi
jne 0x140015f0f
mov rbx, qword [0x140045918]
mov r9, qword [0x14003e110]
mov rdi, qword [rbp - 0x29]
movzx r10d, word [rbp - 0x79]
movzx r11d, word [rsp + 0x38]
jmp 0x1400170bd
xor eax, eax
mov dword [rbp - 0x6d], eax
mov rbx, qword [0x140045918]
mov r9, qword [0x14003e110]
movzx r10d, word [rbp - 0x79]
movzx r11d, word [rsp + 0x38]
jmp 0x1400170bd
movsx rcx, r10w
movzx eax, al
movzx eax, byte [rax + r9]
lea rdx, [0x140045800]
mov byte [rcx + rdx], al
inc r10w
jmp 0x1400170bd
cmp word [rsp + 0x34], 0
je 0x1400170b6
cmp word [rsp + 0x34], 0xd
jne 0x140017052
movzx eax, al
add ax, 0xd
movsx rdx, r10w
movsx rcx, ax
movzx eax, byte [rcx + r9]
lea rcx, [0x140045800]
mov byte [rdx + rcx], al
jmp 0x1400170ae
cmp word [rsp + 0x34], 0xe
jne 0x140017063
movzx eax, al
add ax, 0x1d
jmp 0x140017039
cmp word [rsp + 0x34], 0xf
jne 0x1400170b2
test ecx, ecx
je 0x140017082
movzx ecx, byte [r8 + 1]
shr cl, 4
movzx eax, dl
shl al, 4
movzx edx, cl
or dl, al
inc r11w
movzx eax, dl
add ax, 0x2d
mov ecx, 0xff
cmp ax, cx
jge 0x1400170cd
movsx rcx, r10w
movsx rax, ax
movzx eax, byte [rax + r9]
lea rdx, [0x140045800]
mov byte [rcx + rdx], al
inc r10w
xor eax, eax
jmp 0x1400170b9
movzx eax, al
mov dword [rsp + 0x34], eax
inc r11w
cmp r11w, word [rbp - 0x31]
jge 0x1400170e4
jmp 0x1400160f0
mov rbx, qword [rbp - 0x69]
movzx eax, word [rbx + 0x82]
add ax, ax
mov word [0x1400401b4], ax
jmp 0x1400170e8
mov rbx, qword [rbp - 0x69]
movzx eax, word [rbp - 0x71]
inc ax
mov word [rbp - 0x71], ax
cmp ax, word [rbx + 0x80]
jge 0x14001713c
xor edx, edx
jmp 0x140016000
mov eax, 0xfffffffc
jmp 0x1400171fa
movzx eax, byte [rbx]
sub al, 0x30
cmp al, 9
ja 0x140017120
cmp byte [rbx + 1], 0
je 0x140015e62
mov eax, 7
jmp 0x1400171fa
call fcn.14002cbc8
int3
call fcn.14002cbc8
int3
call fcn.14002cbc8
int3
mov r14, qword [rbp - 0x41]
mov r15, qword [rbp - 0x61]
mov rcx, qword [rbp - 0x51]
call fcn.14002a9e0
xor r8d, r8d
xor edx, edx
mov r12, qword [rbp - 0x21]
mov rcx, r12
call fcn.14002ad10
cmp eax, 0xffffffff
jne 0x14001716d
mov eax, 3
jmp 0x1400171fa
xor r8d, r8d
xor edx, edx
mov rcx, r15
call fcn.14002ad10
cmp eax, 0xffffffff
je 0x140017163
xor ebx, ebx
mov edi, ebx
mov rsi, qword [rbp - 0x29]
cmp dword [rsi], ebx
jbe 0x1400171cb
nop dword [rax + rax]
mov r8, r15
movzx edx, word [0x1400419e4]
mov rcx, r13
call fcn.14002a640
test ax, ax
jle 0x1400171c9
mov rcx, r13
call fcn.14002af90
mov ebx, eax
mov r8d, eax
mov rdx, r13
mov rcx, r12
call fcn.14002a820
cmp eax, ebx
jne 0x140017163
inc edi
cmp edi, dword [rsi]
jb 0x140017190
xor ebx, ebx
mov rcx, r15
call fcn.14002a9e0
lea rcx, str.tmpout.hlp
call qword [sym.imp.MSVCR120.dll__unlink]
mov rcx, r13
call qword [sym.imp.MSVCR120.dll_free]
test r14, r14
je 0x1400171f7
mov rcx, r14
call qword [sym.imp.MSVCR120.dll_free]
movzx eax, bx
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.14002c960
mov rbx, qword [rsp + 0x120]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret