Function at 0x140014fd0
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, 0xd0
mov qword [rbp - 9], 0xfffffffffffffffe
mov qword [rsp + 0x110], rbx
mov rax, qword [0x14003c008]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov qword [rbp - 0x11], r9
mov rdi, r8
mov qword [rbp - 0x21], r8
mov qword [rbp - 0x19], rdx
mov rax, qword [0x1400401d8]
mov qword [rbp - 0x59], rax
mov rax, qword [0x14003e190]
mov qword [0x1400455a0], rax
xor r15d, r15d
movzx eax, r15w
mov dword [rbp - 0x61], eax
lea esi, [r15 + 1]
mov ecx, dword [0x140041aa0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r13, rax
test rax, rax
jne 0x14001505a
mov eax, 4
jmp 0x1400163ba
mov ecx, dword [0x140041aa0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
mov qword [rbp - 0x31], rax
test rax, rax
je 0x140015050
mov r12, rax
mov rcx, r15
lea r15, [0x140000000]
nop
movzx eax, byte [rcx + r15 + 0x302d8]
mov byte [rbp + rcx - 1], al
lea rcx, [rcx + 1]
test al, al
jne 0x140015080
mov ecx, 0x10
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl]
mov rbx, rax
mov qword [rbp - 0x29], rax
test rax, rax
mov r15d, 0
je 0x1400150e6
mov word [rax], r15w
mov qword [rax + 8], r15
lea rcx, [rbp - 1]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x1400150e9
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc140u.dll_operator_1]
mov qword [rbx + 8], rax
lea rdx, [rbp - 1]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x1400150e9
mov rbx, r15
mov edx, 0xa
mov rcx, rbx
call fcn.14002a380
mov qword [rbp - 0x29], rax
test rax, rax
jne 0x140015107
or eax, 0xffffffff
jmp 0x1400163ba
test rbx, rbx
je 0x140015128
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14001511b
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
mov rdx, r15
lea r15, str.tmpout.hlp
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + r15]
mov byte [rbp + rdx - 1], al
lea rdx, [rdx + 1]
test al, al
jne 0x140015140
mov ecx, 0x10
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl]
mov rbx, rax
mov qword [rbp - 0x51], rax
test rax, rax
mov r15d, 0
je 0x1400151a2
mov word [rax], r15w
mov qword [rax + 8], r15
lea rcx, [rbp - 1]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x1400151a5
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc140u.dll_operator_1]
mov qword [rbx + 8], rax
lea rdx, [rbp - 1]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x1400151a5
mov rbx, r15
mov edx, 0xb
mov rcx, rbx
call fcn.14002a380
mov r15, rax
mov qword [rbp - 0x51], rax
test rax, rax
je 0x1400150ff
mov rcx, rbx
call fcn.14002a780
xor edx, edx
mov word [0x1400419e0], dx
movzx eax, word [0x1400400c8]
mov word [rbp - 0x65], ax
mov rbx, qword [rbp - 0x59]
cmp ax, word [rbx + 0x80]
jge 0x1400162fd
movzx r14d, word [rbp - 0x79]
movzx r15d, word [rbp - 0x6d]
nop dword [rax]
mov ecx, 1
mov word [0x1400400a4], cx
mov word [0x1400401d0], dx
mov word [rbp - 0x75], dx
mov word [rbp - 0x71], dx
mov word [0x14003e1a8], ax
movsx edx, ax
movzx eax, word [rbx + 0x82]
imul edx, eax
add edx, dword [rbx + 0x28]
xor r8d, r8d
mov rcx, qword [0x1400400a8]
call fcn.14002a520
cmp eax, 0xffffffff
je 0x1400150ff
movzx r8d, word [rbx + 0x82]
mov rcx, qword [0x1400400a8]
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x49]
mov rdx, qword [0x1400455a0]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1400152a7
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140015295
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x14001529a
mov ecx, operator
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
movzx eax, word [rbx + 0x82]
cmp dword [rbp - 0x49], eax
jne 0x1400150ff
movzx r10d, word [0x1400401d0]
add eax, eax
mov dword [rbp - 0x39], eax
movzx r11d, word [0x1400400a4]
cmp r11w, ax
jge 0x1400162a1
mov rbx, qword [0x1400455a0]
mov r9, qword [0x14003e1a0]
movzx eax, r11w
sar ax, 1
movsx ecx, r11w
and ecx, 0x80000001
jge 0x1400152fe
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 0x140015316
shr al, 4
jmp 0x140015318
and al, 0xf
cmp al, 0xd
jae 0x1400161dc
cmp word [rbp - 0x75], 0
jne 0x1400161e7
test al, al
jne 0x1400161bd
movsx rax, r10w
cmp rax, 0x100
jae 0x1400162ef
lea rcx, [0x140045870]
mov byte [rax + rcx], 0
lea r9, [rbp - 0x71]
movzx r8d, r11w
mov rdx, qword [0x14003e190]
mov rcx, qword [rbp - 0x59]
call fcn.140006780
lea r8d, [rax + 1]
mov word [rbp - 0x67], r8w
movzx ecx, r8w
sar cx, 1
movsx eax, r8w
and eax, 0x80000001
jge 0x140015388
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
movsx rax, cx
movzx ecx, byte [rax + rbx]
jne 0x140015399
shr cl, 4
jmp 0x14001539c
and cl, 0xf
movzx edx, cl
mov word [rbp - 0x69], dx
lea eax, [r8 + 1]
mov word [0x1400400a4], ax
mov word [0x1400401d0], dx
movzx eax, word [rbp - 0x71]
mov word [0x1400403f0], ax
mov rcx, qword [rbp - 0x59]
call fcn.140006670
cmp ax, 1
jne 0x1400150ff
lea r8, [0x1400455b0]
lea rdx, [0x140045870]
call fcn.140006bf0
test si, si
je 0x140015589
mov rbx, qword [rbp - 0x19]
mov r8, rbx
movzx edx, word [0x140041aa0]
mov rcx, r13
call fcn.140029e70
test ax, ax
jle 0x14001585c
mov rcx, rbx
call fcn.14001af60
test ax, ax
je 0x14001546d
movzx r8d, word [0x14003e1bc]
mov word [0x14003e1b0], r8w
movzx ecx, word [0x14003e170]
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 [0x14003e16c]
mov word [0x14003e174], cx
lea rdx, [0x14003e1d0]
call qword [0x140041ab0]
test ax, ax
jne 0x1400162bc
mov rax, qword [rbp - 0x31]
mov ecx, 0x20
mov dword [rax], ecx
xor r9d, r9d
mov qword [rbp - 0x31], r12
mov rax, r13
mov rdx, r12
movzx ecx, byte [r13 + 1]
or cl, byte [r13]
je 0x140015050
movzx r8d, word [r12]
nop dword [rax]
cmp word [rax], r8w
jne 0x1400154cb
mov rbx, rax
nop dword [rax]
lea rdx, [rdx + 2]
movzx ecx, word [rdx]
test cx, cx
je 0x1400154dd
add rax, 2
cmp word [rax], cx
je 0x1400154b0
mov rax, rbx
mov rdx, r12
add rax, 2
movzx ecx, byte [rax + 1]
or cl, byte [rax]
je 0x140015050
jmp 0x1400154a0
test rbx, rbx
je 0x140015050
movzx ecx, r9w
mov r8, rbx
sub r8, r13
test r8, r8
jle 0x140015517
mov rdx, r9
lea r9, [0x140044da0]
nop
movzx eax, byte [rdx + r13]
mov byte [rdx + r9], al
inc cx
movsx rdx, cx
cmp rdx, r8
jl 0x140015500
jmp 0x14001551e
lea r9, [0x140044da0]
movsx rax, cx
cmp rax, 0x800
jae 0x1400162e9
mov byte [rax + r9], 0
lea eax, [rcx + 1]
movsx rax, ax
cmp rax, 0x800
jae 0x1400162e3
mov byte [rax + r9], 0
lea rdx, [rbp - 0x79]
mov rcx, rbx
call fcn.140029c70
test ax, ax
je 0x1400162c6
movsx rcx, ax
add rcx, rbx
lea rdx, [rbp - 0x6d]
call fcn.140029c70
test ax, ax
je 0x140015050
xor ebx, ebx
mov esi, ebx
movzx r14d, word [rbp - 0x79]
movzx r15d, word [rbp - 0x6d]
jmp 0x14001558b
xor ebx, ebx
lea rdx, [0x140044da0]
lea rcx, [0x1400455b0]
call fcn.140006d50
test ax, ax
js 0x14001585c
mov word [0x14004040a], r14w
mov ecx, 0x3fff
mov dword [0x14004040c], ecx
mov word [0x140040410], r15w
mov word [0x140040412], bx
jle 0x1400156f9
mov word [rsp + 0x20], r15w
movzx r9d, r14w
lea rsi, [0x1400456a0]
mov rdx, rsi
lea rax, [0x140044da0]
mov rcx, rax
call fcn.14000a030
lea rdx, [0x14003c324]
mov rcx, rsi
nop dword [rax]
cmp byte [rcx], 0
jne 0x14001560b
cmp byte [rcx + 1], 0
je 0x140015611
add rcx, 2
jmp 0x140015600
movzx eax, byte [rdx]
test al, al
jne 0x14001561d
cmp byte [rdx + 1], al
je 0x140015630
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015611
mov word [rcx], 0
mov rax, rsi
mov ecx, ebx
nop word [rax + rax]
cmp byte [rax], 0
jne 0x14001564b
cmp byte [rax + 1], 0
je 0x140015653
add rax, 2
inc ecx
jmp 0x140015640
add cx, cx
mov word [0x14003e1c4], cx
movsx r8, cx
mov rcx, rbx
mov rbx, r8
test r8d, r8d
jle 0x14001567b
nop dword [rax]
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x140015670
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x45]
mov rdx, rsi
mov rax, qword [rbp - 0x51]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1400156c9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x1400156b7
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x1400156bc
mov ecx, operator
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
xor eax, eax
mov ecx, eax
test rbx, rbx
jle 0x1400156dd
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x1400156d2
movsx eax, word [0x14003e1c4]
cmp dword [rbp - 0x45], eax
jne 0x1400150ff
inc dword [rdi]
mov esi, 1
jmp 0x1400153e6
cmp r14w, word [0x140040400]
jne 0x140015733
cmp r15w, word [0x140040406]
jne 0x140015733
cmp cx, word [0x140040402]
jne 0x140015733
cmp bx, word [0x140040404]
jne 0x140015733
mov eax, 1
mov word [0x1400419e0], ax
mov dword [rbp - 0x61], eax
jmp 0x140015854
mov word [rsp + 0x20], r15w
movzx r9d, r14w
lea rsi, [0x1400456a0]
mov rdx, rsi
lea rax, [0x140044da0]
mov rcx, rax
call fcn.14000a030
lea rdx, [0x14003c324]
mov rcx, rsi
cmp byte [rcx], 0
jne 0x14001576b
cmp byte [rcx + 1], 0
je 0x140015771
add rcx, 2
jmp 0x140015760
movzx eax, byte [rdx]
test al, al
jne 0x14001577d
cmp byte [rdx + 1], al
je 0x140015790
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015771
mov word [rcx], 0
mov rax, rsi
mov ecx, ebx
nop word [rax + rax]
cmp byte [rax], 0
jne 0x1400157ab
cmp byte [rax + 1], 0
je 0x1400157b3
add rax, 2
inc ecx
jmp 0x1400157a0
add cx, cx
mov word [0x14003e1c4], cx
movsx r8, cx
mov rcx, rbx
mov rbx, r8
test r8d, r8d
jle 0x1400157db
nop dword [rax]
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x1400157d0
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x41]
mov rdx, rsi
mov rax, qword [rbp - 0x51]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140015829
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140015817
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x14001581c
mov ecx, operator
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
xor eax, eax
mov ecx, eax
test rbx, rbx
jle 0x14001583d
not byte [rcx + rsi]
inc rcx
cmp rcx, rbx
jl 0x140015832
movsx eax, word [0x14003e1c4]
cmp dword [rbp - 0x41], eax
jne 0x1400150ff
inc dword [rdi]
mov eax, 1
movzx esi, ax
jmp 0x1400153e6
mov eax, dword [rbp - 0x61]
test ax, ax
jne 0x14001619b
lea rcx, [0x1400455b0]
lea rdi, [0x140045770]
mov rdx, rdi
nop dword [rax]
movzx eax, byte [rcx]
test al, al
jne 0x14001588c
cmp byte [rcx + 1], al
je 0x14001589f
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
add rdx, 2
add rcx, 2
jmp 0x140015880
movzx eax, byte [rcx]
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
lea rdx, [0x14003c11c]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x1400158c0
cmp byte [rcx + 1], 0
je 0x1400158c6
add rcx, 2
jmp 0x1400158b5
movzx eax, byte [rdx]
test al, al
jne 0x1400158d2
cmp byte [rdx + 1], al
je 0x1400158e5
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x1400158c6
mov word [rcx], 0
movzx edx, word [0x140040400]
xor r11d, r11d
movzx r8d, r11w
lea rbx, [0x140045680]
nop
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 0x140015900
movsx rax, r8w
mov byte [rax + rbx], r11b
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045680]
test al, al
je 0x14001595b
nop dword [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], r11b
jne 0x140015950
dec r9w
cmp r11w, r9w
jge 0x14001599f
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 0x140015970
movzx eax, byte [0x140045680]
lea r9, [0x140044d70]
mov rdx, r9
mov r8, rbx
test al, al
je 0x1400159f9
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x1400159c9
movzx ecx, al
jmp 0x1400159dd
cmp al, 0xfe
ja 0x1400159da
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30230]
jmp 0x1400159dd
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x1400159c0
xor r11d, r11d
lea rbx, [0x140045680]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015a0e
cmp byte [rcx + 1], 0
je 0x140015a14
add rcx, 2
jmp 0x140015a03
movzx eax, byte [rdx]
test al, al
jne 0x140015a20
cmp byte [rdx + 1], al
je 0x140015a33
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015a14
mov word [rcx], 0
lea rdx, [0x14003c11c]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015a4d
cmp byte [rcx + 1], 0
je 0x140015a53
add rcx, 2
jmp 0x140015a42
movzx eax, byte [rdx]
test al, al
jne 0x140015a5f
cmp byte [rdx + 1], al
je 0x140015a72
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015a53
mov word [rcx], 0
movzx edx, word [0x140040402]
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 0x140015a90
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045680]
test al, al
je 0x140015aeb
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140015ae0
dec r9w
cmp r11w, r9w
jge 0x140015b2f
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 0x140015b00
movzx eax, byte [0x140045680]
lea r9, [0x140044d70]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140015b89
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140015b59
movzx ecx, al
jmp 0x140015b6d
cmp al, 0xfe
ja 0x140015b6a
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30230]
jmp 0x140015b6d
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140015b50
xor r11d, r11d
lea rbx, [0x140045680]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015b9e
cmp byte [rcx + 1], 0
je 0x140015ba4
add rcx, 2
jmp 0x140015b93
movzx eax, byte [rdx]
test al, al
jne 0x140015bb0
cmp byte [rdx + 1], al
je 0x140015bc3
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015ba4
mov word [rcx], 0
lea rdx, [0x14003c11c]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015bdd
cmp byte [rcx + 1], 0
je 0x140015be3
add rcx, 2
jmp 0x140015bd2
movzx eax, byte [rdx]
test al, al
jne 0x140015bef
cmp byte [rdx + 1], al
je 0x140015c02
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015be3
mov word [rcx], 0
movzx edx, word [0x140040404]
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 0x140015c20
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045680]
test al, al
je 0x140015c7b
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140015c70
dec r9w
cmp r11w, r9w
jge 0x140015cbf
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 0x140015c90
movzx eax, byte [0x140045680]
lea r9, [0x140044d70]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140015d19
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140015ce9
movzx ecx, al
jmp 0x140015cfd
cmp al, 0xfe
ja 0x140015cfa
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30230]
jmp 0x140015cfd
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140015ce0
xor r11d, r11d
lea rbx, [0x140045680]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015d2e
cmp byte [rcx + 1], 0
je 0x140015d34
add rcx, 2
jmp 0x140015d23
movzx eax, byte [rdx]
test al, al
jne 0x140015d40
cmp byte [rdx + 1], al
je 0x140015d53
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015d34
mov word [rcx], 0
lea rdx, [0x14003c11c]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015d6d
cmp byte [rcx + 1], 0
je 0x140015d73
add rcx, 2
jmp 0x140015d62
movzx eax, byte [rdx]
test al, al
jne 0x140015d7f
cmp byte [rdx + 1], al
je 0x140015d92
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015d73
mov word [rcx], 0
movzx edx, word [0x140040406]
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 0x140015db0
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045680]
test al, al
je 0x140015e0b
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140015e00
dec r9w
cmp r11w, r9w
jge 0x140015e4f
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 0x140015e20
movzx eax, byte [0x140045680]
lea r9, [0x140044d70]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140015ea9
lea rbx, [0x140000000]
mov r11d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140015e79
movzx ecx, al
jmp 0x140015e8d
cmp al, 0xfe
ja 0x140015e8a
movzx eax, al
movzx ecx, word [rbx + rax*2 + 0x30230]
jmp 0x140015e8d
mov ecx, r11d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140015e70
xor r11d, r11d
lea rbx, [0x140045680]
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015ebe
cmp byte [rcx + 1], 0
je 0x140015ec4
add rcx, 2
jmp 0x140015eb3
movzx eax, byte [rdx]
test al, al
jne 0x140015ed0
cmp byte [rdx + 1], al
je 0x140015ee3
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015ec4
mov word [rcx], 0
lea rdx, [0x14003c11c]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x140015efd
cmp byte [rcx + 1], 0
je 0x140015f03
add rcx, 2
jmp 0x140015ef2
movzx eax, byte [rdx]
test al, al
jne 0x140015f0f
cmp byte [rdx + 1], al
je 0x140015f22
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140015f03
mov word [rcx], 0
movzx edx, word [0x140040408]
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 0x140015f40
movsx rax, r8w
mov byte [rax + rbx], dl
movzx r10d, r11w
mov r9d, r11d
mov rcx, rbx
movzx eax, byte [0x140045680]
test al, al
je 0x140015f9b
nop word [rax + rax]
inc rcx
inc r9d
cmp byte [rcx], 0
jne 0x140015f90
dec r9w
cmp r11w, r9w
jge 0x140015fdf
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 0x140015fb0
movzx eax, byte [0x140045680]
lea r9, [0x140044d70]
mov rdx, r9
mov r8, rbx
test al, al
je 0x140016038
lea r11, [0x140000000]
mov r14d, 0x20
nop dword [rax]
cmp al, 0x7f
ja 0x140016009
movzx ecx, al
jmp 0x14001601e
cmp al, 0xfe
ja 0x14001601b
movzx eax, al
movzx ecx, word [r11 + rax*2 + 0x30230]
jmp 0x14001601e
mov ecx, r14d
mov word [rdx], cx
add rdx, 2
inc r8
movzx eax, byte [r8]
test al, al
jne 0x140016000
movzx r14d, word [rbp - 0x79]
xor r11d, r11d
mov word [rdx], r11w
mov rdx, r9
mov rcx, rdi
cmp byte [rcx], 0
jne 0x14001604d
cmp byte [rcx + 1], 0
je 0x140016053
add rcx, 2
jmp 0x140016042
movzx eax, byte [rdx]
test al, al
jne 0x14001605f
cmp byte [rdx + 1], al
je 0x140016072
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016053
mov word [rcx], 0
lea rdx, [0x14003c324]
mov rcx, rdi
cmp byte [rcx], 0
jne 0x14001608c
cmp byte [rcx + 1], 0
je 0x140016092
add rcx, 2
jmp 0x140016081
movzx eax, byte [rdx]
test al, al
jne 0x14001609e
cmp byte [rdx + 1], al
je 0x1400160b1
mov byte [rcx], al
movzx eax, byte [rdx + 1]
mov byte [rcx + 1], al
add rcx, 2
add rdx, 2
jmp 0x140016092
mov word [rcx], 0
mov rax, rdi
mov ecx, r11d
nop dword [rax]
cmp byte [rax], 0
jne 0x1400160cb
cmp byte [rax + 1], 0
je 0x1400160d3
add rax, 2
inc ecx
jmp 0x1400160c0
lea edi, [rcx + rcx]
mov rcx, r11
movsxd rbx, edi
lea r10, [0x140045770]
test edi, edi
jle 0x1400160fc
nop word [rax + rax]
not byte [rcx + r10]
inc rcx
cmp rcx, rbx
jl 0x1400160f0
mov qword [rsp + 0x20], r11
lea r9, [rbp - 0x3d]
mov r8d, edi
mov rdx, r10
mov rax, qword [rbp - 0x29]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14001614b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140016139
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x14001613e
mov ecx, operator
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
xor eax, eax
mov ecx, eax
test edi, edi
jle 0x140016171
lea rdx, [0x140045770]
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
not al
mov byte [rcx + rdx], al
inc rcx
cmp rcx, rbx
jl 0x140016160
cmp dword [rbp - 0x3d], edi
jne 0x1400150ff
mov rbx, qword [0x1400455a0]
mov r9, qword [0x14003e1a0]
mov rdi, qword [rbp - 0x21]
movzx r10d, word [rbp - 0x69]
movzx r11d, word [rbp - 0x67]
jmp 0x140016276
xor eax, eax
mov dword [rbp - 0x61], eax
mov rbx, qword [0x1400455a0]
mov r9, qword [0x14003e1a0]
movzx r10d, word [rbp - 0x69]
movzx r11d, word [rbp - 0x67]
jmp 0x140016276
movsx rcx, r10w
movzx eax, al
movzx eax, byte [rax + r9]
lea rdx, [0x140045870]
mov byte [rcx + rdx], al
inc r10w
jmp 0x140016276
cmp word [rbp - 0x75], 0
je 0x140016270
cmp word [rbp - 0x75], 0xd
jne 0x14001620e
movzx eax, al
add ax, 0xd
movsx rdx, r10w
movsx rcx, ax
movzx eax, byte [rcx + r9]
lea rcx, [0x140045870]
mov byte [rdx + rcx], al
jmp 0x140016268
cmp word [rbp - 0x75], 0xe
jne 0x14001621e
movzx eax, al
add ax, 0x1d
jmp 0x1400161f5
cmp word [rbp - 0x75], 0xf
jne 0x14001626c
test ecx, ecx
je 0x14001623c
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 0x140016286
movsx rcx, r10w
movsx rax, ax
movzx eax, byte [rax + r9]
lea rdx, [0x140045870]
mov byte [rcx + rdx], al
inc r10w
xor eax, eax
jmp 0x140016273
movzx eax, al
mov dword [rbp - 0x75], eax
inc r11w
cmp r11w, word [rbp - 0x39]
jge 0x14001629d
jmp 0x1400152e4
mov rbx, qword [rbp - 0x59]
movzx eax, word [rbx + 0x82]
add ax, ax
mov word [0x1400400a4], ax
jmp 0x1400162a1
mov rbx, qword [rbp - 0x59]
movzx eax, word [rbp - 0x65]
inc ax
mov word [rbp - 0x65], ax
cmp ax, word [rbx + 0x80]
jge 0x1400162f5
xor edx, edx
jmp 0x140015200
mov eax, 0xfffffffc
jmp 0x1400163ba
movzx eax, byte [rbx]
sub al, 0x30
cmp al, 9
ja 0x1400162d9
cmp byte [rbx + 1], 0
je 0x140015050
mov eax, 7
jmp 0x1400163ba
call fcn.14002c590
int3
call fcn.14002c590
int3
call fcn.14002c590
int3
mov r14, qword [rbp - 0x31]
mov r15, qword [rbp - 0x51]
mov rcx, qword [rbp - 0x29]
call fcn.14002a1e0
xor r8d, r8d
xor edx, edx
mov r12, qword [rbp - 0x11]
mov rcx, r12
call fcn.14002a520
cmp eax, 0xffffffff
jne 0x140016326
mov eax, 3
jmp 0x1400163ba
xor r8d, r8d
xor edx, edx
mov rcx, r15
call fcn.14002a520
cmp eax, 0xffffffff
je 0x14001631c
xor ebx, ebx
mov edi, ebx
mov rsi, qword [rbp - 0x21]
cmp dword [rsi], ebx
jbe 0x14001638b
nop dword [rax]
nop dword [rax + rax]
mov r8, r15
movzx edx, word [0x140041aa0]
mov rcx, r13
call fcn.140029e70
test ax, ax
jle 0x140016389
mov rcx, r13
call fcn.14002a800
mov ebx, eax
mov r8d, eax
mov rdx, r13
mov rcx, r12
call fcn.14002a040
cmp eax, ebx
jne 0x14001631c
inc edi
cmp edi, dword [rsi]
jb 0x140016350
xor ebx, ebx
mov rcx, r15
call fcn.14002a1e0
lea rcx, str.tmpout.hlp
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__unlink]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r14, r14
je 0x1400163b7
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movzx eax, bx
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.14002c160
mov rbx, qword [rsp + 0x110]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret