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

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
mov qword [rbp + 7], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x14003c008]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rax, qword [0x140041aa8]
mov qword [rbp - 1], rax
xor ebx, ebx
mov word [0x140043080], bx
mov word [0x140043090], bx
mov word [0x140043088], bx
mov dword [0x140042d58], ebx
mov word [rbp - 0x45], bx
mov word [0x140043120], bx
mov word [0x140043094], bx
mov word [0x14004307c], bx
mov word [0x140043078], bx
mov word [0x140043070], bx
mov word [0x140043124], bx
mov word [0x140043130], bx
mov ecx, ebx
lea rsi, [0x140000000]
nop
movzx eax, byte [rcx + rsi + 0x302d8]
mov byte [rbp + rcx + 0xf], al
lea rcx, [rcx + 1]
test al, al
jne 0x140012a60
mov ecx, 0x10
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl]
mov rdi, rax
mov qword [rbp - 0x21], rax
test rax, rax
je 0x140012abe
mov word [rax], bx
mov qword [rax + 8], rbx
lea rcx, [rbp + 0xf]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140012ac1
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc140u.dll_operator_1]
mov qword [rdi + 8], rax
lea rdx, [rbp + 0xf]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140012ac1
mov rdi, rbx
mov edx, 1
mov rcx, rdi
call fcn.14002a380
mov qword [rbp - 9], rax
test rax, rax
jne 0x140012adf
or eax, 0xffffffff
jmp 0x140013b9a
test rdi, rdi
je 0x140012b00
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140012af3
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rdi
call fcn.14002c9cc
mov rcx, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rsi + 0x302e8]
mov byte [rbp + rcx + 0xf], al
lea rcx, [rcx + 1]
test al, al
jne 0x140012b10
mov ecx, 0x10
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonLinkCtrl::XElementButtonLinkCtrl]
mov rdi, rax
mov qword [rbp - 0x21], rax
test rax, rax
je 0x140012b6e
mov word [rax], bx
mov qword [rax + 8], rbx
lea rcx, [rbp + 0xf]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140012b71
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc140u.dll_operator_1]
mov qword [rdi + 8], rax
lea rdx, [rbp + 0xf]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140012b71
mov rdi, rbx
mov edx, 0xa
mov rcx, rdi
call fcn.14002a380
mov r12, rax
mov qword [rbp - 0x29], rax
test rax, rax
je 0x140013978
mov rcx, rdi
call fcn.14002a780
mov r15d, 0x2710
mov qword [rbp - 0x11], r15
mov esi, 0x4b0
mov qword [rbp - 0x21], rsi
mov ecx, r15d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [0x1400419e8], rax
test rax, rax
je 0x140013a95
mov r13d, 0x960
mov qword [rbp - 0x19], r13
mov ecx, r13d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, rax
mov qword [0x1400419f0], rax
test rax, rax
je 0x140013a95
mov word [0x1400419f8], bx
movsx rax, bx
mov rdi, r8
mov ecx, esi
rep stosw word [rdi], ax
mov rdi, qword [0x1400419e8]
mov byte [rdi], 0
lea rax, [rdi + 1]
mov ecx, 0x9c
nop
mov qword [rax], rbx
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbx
lea rax, [rax + 0x40]
mov qword [rax - 0x28], rbx
mov qword [rax - 0x20], rbx
mov qword [rax - 0x18], rbx
mov qword [rax - 0x10], rbx
mov qword [rax - 8], rbx
sub rcx, 1
jne 0x140012c10
mov qword [rax], rbx
mov dword [rax + 8], ebx
mov word [rax + 0xc], bx
mov byte [rax + 0xe], bl
movzx r10d, r15w
mov word [rbp - 0x49], r15w
mov r14d, operator
movzx r9d, word [0x1400400c8]
xor r11d, r11d
cmp r11w, r9w
jae 0x140012e8b
nop word [rax + rax]
mov word [0x140041a18], bx
mov rcx, qword [0x1400401d8]
movzx edx, word [rcx + 0x82]
movsx eax, bx
imul edx, eax
add edx, dword [rcx + 0x28]
mov dword [0x140042d58], edx
mov rcx, qword [0x1400400a8]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edi, eax
lea ecx, [rax + 1]
test ecx, 0xfffffffe
jne 0x140012ce4
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140012cd4
mov ecx, eax
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x30680]
jmp 0x140012cd7
mov edx, r14d
mov dword [0x140042de8], edx
mov byte [0x1400433b0], 0
cmp edi, 0xffffffff
je 0x140012ad7
mov rax, qword [0x1400401d8]
movzx ecx, word [rax + 0x82]
mov eax, 0x200
cmp cx, ax
ja 0x140012ad7
movzx r8d, cx
mov rcx, qword [0x1400400a8]
xor edi, edi
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x41]
lea rdx, [0x1400431b0]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140012d60
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140012d50
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x140012d53
mov ecx, r14d
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], dil
mov rax, qword [0x1400401d8]
movzx ecx, word [rax + 0x82]
cmp dword [rbp - 0x41], ecx
jne 0x140012ad7
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x31]
mov edi, 0x200
mov r8d, edi
lea rdx, [0x1400431b0]
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140012dca
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140012dba
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x140012dbd
mov ecx, r14d
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
cmp dword [rbp - 0x31], edi
jne 0x140013978
cmp bx, si
jb 0x140012e4a
movzx ecx, r13w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, r13w
mov eax, 0x7d00
cmp dx, ax
ja 0x140013718
movzx edx, dx
mov rcx, qword [0x1400419f0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov r8, rax
mov qword [0x1400419f0], rax
test rax, rax
je 0x140013a95
movzx ecx, si
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add si, dx
mov qword [rbp - 0x21], rsi
movzx eax, si
lea r13d, [rax + rax]
mov qword [rbp - 0x19], r13
jmp 0x140012e51
mov r8, qword [0x1400419f0]
movzx eax, bx
lea rdx, [rax + rax]
mov rax, qword [0x14003e180]
movzx ecx, word [rdx + rax]
mov word [rdx + r8], cx
inc bx
movzx r9d, word [0x1400400c8]
cmp bx, r9w
jb 0x140012c70
mov rdi, qword [0x1400419e8]
movzx r10d, r15w
xor r11d, r11d
movzx eax, bx
lea rdx, [rax + rax]
mov rax, qword [0x14003e180]
movzx ecx, word [rdx + rax]
mov word [rdx + r8], cx
movzx ebx, r11w
movsx rax, r9w
mov rcx, qword [0x14003e180]
cmp r11w, word [rcx + rax*2 + 2]
jae 0x140012f60
cmp bx, r15w
jb 0x140012f37
movzx ecx, r10w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, r10w
mov eax, 0x7d00
cmp dx, ax
ja 0x140013718
movzx edx, dx
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rdi, rax
mov qword [0x1400419e8], rax
test rax, rax
je 0x140013a95
movzx ecx, r15w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add r15w, dx
mov qword [rbp - 0x11], r15
movzx r10d, r15w
mov word [rbp - 0x49], r15w
movzx r9d, word [0x1400400c8]
movzx edx, bx
mov rax, qword [0x14003e178]
movzx ecx, byte [rdx + rax]
mov byte [rdx + rdi], cl
inc bx
movsx rax, r9w
mov rcx, qword [0x14003e180]
cmp bx, word [rcx + rax*2 + 2]
jmp 0x140012eb7
xor r15d, r15d
mov dword [0x140042d58], r15d
mov word [0x1400419f8], r9w
movzx eax, r9w
movzx edi, word [rcx + rax*2 + 2]
sub di, word [rcx + rax*2]
mov word [rbp - 0x47], di
lea ecx, [r15 + 4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r13, rax
test rax, rax
je 0x140013a95
mov edx, 0x800
mov rbx, qword [rbp - 9]
mov r8, rbx
lea rdi, [0x140044570]
mov rcx, rdi
call fcn.140029e70
movzx r12d, word [rbp - 0x41]
test ax, ax
jle 0x140013aa2
mov rcx, rbx
call fcn.14001af60
test ax, ax
je 0x140013021
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 0x140013622
inc word [0x140043124]
mov rax, rdi
mov ecx, r15d
nop
cmp byte [rax], 0
jne 0x14001303b
cmp byte [rax + 1], 0
je 0x140013043
add rax, 2
inc ecx
jmp 0x140013030
add cx, cx
mov word [0x14003e1c4], cx
mov dword [r13], 0x20
mov rax, rdi
mov rdx, r13
movzx ecx, byte [0x140044570]
or cl, byte [0x140044571]
je 0x14001399f
movzx r8d, word [r13]
cmp word [rax], r8w
jne 0x14001309b
mov rdi, rax
nop dword [rax]
lea rdx, [rdx + 2]
movzx ecx, word [rdx]
test cx, cx
je 0x1400130ad
add rax, 2
cmp word [rax], cx
je 0x140013080
mov rax, rdi
mov rdx, r13
add rax, 2
movzx ecx, byte [rax + 1]
or cl, byte [rax]
je 0x14001399f
jmp 0x140013073
test rdi, rdi
je 0x14001399f
lea rax, [0x140044570]
mov ecx, r15d
cmp byte [rax], 0
jne 0x1400130cb
cmp byte [rax + 1], 0
je 0x1400130d3
add rax, 2
inc ecx
jmp 0x1400130c0
add cx, cx
add word [0x140043090], cx
mov word [rdi], 0
add rdi, 2
lea rdx, [rbp - 0x3d]
mov rcx, rdi
call fcn.140029d80
test ax, ax
je 0x140013982
movzx eax, ax
add rdi, rax
lea rdx, [rbp - 0x39]
mov rcx, rdi
call fcn.140029d80
test ax, ax
je 0x140013a95
movzx eax, ax
add rdi, rax
lea rdx, [rbp - 0x35]
mov rcx, rdi
call fcn.140029d80
test ax, ax
je 0x140013a95
movzx eax, ax
add rdi, rax
lea rdx, [rbp - 0x31]
mov rcx, rdi
call fcn.140029d80
test ax, ax
je 0x140013a95
movzx ecx, ax
add rcx, rdi
lea rdx, [rbp - 0x41]
call fcn.140029d80
test ax, ax
je 0x140013a95
movzx edx, r15w
movzx r9d, word [rbp - 0x3d]
movzx ecx, word [rbp - 0x39]
movzx edi, word [rbp - 0x35]
movzx r10d, word [rbp - 0x31]
movzx r8d, word [0x14003ee64]
cmp r15w, r8w
jge 0x1400131b6
mov rax, qword [rbp - 1]
add rax, 4
cmp word [rax - 4], cx
jne 0x1400131a9
cmp word [rax - 2], r9w
jne 0x1400131a9
cmp word [rax], di
jne 0x1400131a9
cmp word [rax + 2], r10w
je 0x1400131b6
add rax, 0xa
inc dx
cmp dx, r8w
jl 0x140013190
movzx r8d, word [rbp - 0x41]
mov word [rsp + 0x30], di
mov word [rsp + 0x28], cx
mov word [rsp + 0x20], r10w
test r8w, r8w
jne 0x1400131d4
xor r8d, r8d
call fcn.140013c80
test ax, ax
jne 0x140013a95
movsx r8d, word [0x140043084]
mov ecx, 0x1fe
sub ecx, r8d
movsxd r9, dword [0x140042d58]
cmp r9d, ecx
jge 0x14001321c
inc r8w
lea rcx, [0x1400431b0]
add rcx, r9
call fcn.140014500
xor edi, edi
lea r15d, [rdi + 1]
jmp 0x1400135b0
movzx ecx, word [0x140043088]
cmp cx, word [0x140043124]
cmovl cx, word [0x140043124]
mov word [0x140043088], cx
mov word [0x140043124], r15w
movzx ecx, word [0x140043080]
cmp cx, word [0x140043090]
cmovl cx, word [0x140043090]
mov word [0x140043080], cx
mov word [0x140043090], r15w
movzx ecx, word [0x140043070]
lea r10, [0x1400431b0]
movzx edx, word [0x140043078]
cmp word [0x14004308c], 0
je 0x1400132ab
or byte [r9 + r10], 0xf
inc r9d
mov dword [0x140042d58], r9d
test cx, cx
je 0x1400132a3
inc dx
mov word [0x140043078], dx
mov word [0x14004308c], r15w
test cx, cx
je 0x1400132f3
cmp word [0x140043120], 0
je 0x1400132dd
movsx eax, word [0x14004307c]
mov ecx, 1
sub ecx, eax
movsx eax, dx
sub ecx, eax
add r9d, ecx
movsxd rax, r9d
or byte [rax + r10], 0xf
inc r9d
jmp 0x1400132ec
movsx ecx, word [0x14004307c]
movsx eax, dx
add ecx, eax
sub r9d, ecx
mov dword [0x140042d58], r9d
mov ebx, 0x200
cmp r9d, ebx
jge 0x14001331b
movsxd rdi, r9d
add rdi, r10
mov edx, ebx
sub edx, r9d
mov eax, 0xff
mov ecx, edx
rep stosb byte [rdi], al
add r9d, edx
mov dword [0x140042d58], r9d
mov qword [rsp + 0x20], r15
lea r9, [rbp - 0x2d]
mov r8d, ebx
mov rdx, r10
mov rax, qword [rbp - 0x29]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140013368
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013358
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x14001335b
mov ecx, r14d
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
cmp dword [rbp - 0x2d], ebx
jne 0x140013978
movzx r8d, word [0x1400419f8]
inc r8w
mov word [0x1400419f8], r8w
cmp r8w, si
jb 0x140013406
mov rdi, qword [rbp - 0x19]
movzx ecx, di
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, di
mov eax, 0x7d00
cmp dx, ax
ja 0x140013718
movzx edx, dx
mov rcx, qword [0x1400419f0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov r14, rax
mov qword [0x1400419f0], rax
test rax, rax
je 0x140013a95
movzx ecx, si
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add si, dx
mov qword [rbp - 0x21], rsi
movzx eax, si
add ax, ax
mov word [rbp - 0x19], ax
movzx r8d, word [0x1400419f8]
jmp 0x14001340d
mov r14, qword [0x1400419f0]
xor ecx, ecx
movzx edx, cx
movzx eax, byte [0x140044570]
cmp byte [0x140043130], al
jne 0x14001345b
lea rdi, [0x140044570]
lea r9, [0x140043130]
nop
movzx eax, byte [rcx + rdi + 1]
cmp byte [rcx + r9 + 1], al
jne 0x14001345b
cmp byte [rcx + r9], 0
jne 0x140013449
cmp byte [rcx + rdi], 0
je 0x14001345b
add rcx, 2
add dx, 2
movzx eax, byte [rcx + rdi]
cmp byte [rcx + r9], al
je 0x140013430
movsx eax, dx
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
inc bx
movzx ecx, r8w
movzx r12d, word [r14 + rcx*2 - 2]
add r12w, word [rbp - 0x47]
mov word [r14 + rcx*2], r12w
add r12w, bx
mov rsi, qword [rbp - 0x11]
cmp r12w, si
jbe 0x140013506
movzx r8d, word [rbp - 0x49]
mov eax, 0x66666667
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, r8w
mov eax, 0x7d00
cmp dx, ax
ja 0x140013718
movzx edx, dx
mov rcx, qword [0x1400419e8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rdi, rax
mov qword [0x1400419e8], rax
test rax, rax
je 0x140013a95
movzx ecx, si
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add si, dx
mov qword [rbp - 0x11], rsi
mov word [rbp - 0x49], si
movzx r8d, word [0x1400419f8]
mov r14, qword [0x1400419f0]
jmp 0x14001350d
mov rdi, qword [0x1400419e8]
movzx esi, r8w
movsx rcx, word [r14 + rsi*2]
add rcx, rdi
movzx r8d, bx
call fcn.1400146e0
test ax, ax
je 0x140013a95
movzx eax, word [r14 + rsi*2]
sub ax, word [r14 + rsi*2 - 2]
movzx ecx, word [rbp - 0x45]
cmp cx, ax
cmovb cx, ax
mov word [rbp - 0x45], cx
mov word [rbp - 0x47], bx
xor edi, edi
mov dword [0x140042d58], edi
lea r8d, [rdi + 1]
mov rbx, qword [rbp - 9]
mov rcx, rbx
cmp word [0x140043070], di
movsx edx, word [0x140043094]
jne 0x140013573
movsx edx, word [0x14003e1c4]
neg edx
call fcn.14002a520
cmp eax, 0xffffffff
je 0x140012ad7
mov word [0x140043094], di
mov word [0x140043070], di
mov word [0x140043120], di
mov word [0x140043078], di
mov word [0x140044570], di
mov rsi, qword [rbp - 0x21]
mov r14d, operator
lea rcx, [0x140044570]
lea rax, [0x140043130]
mov rdx, rax
movzx eax, byte [rcx]
test al, al
jne 0x1400135cd
cmp byte [rcx + 1], al
je 0x1400135e0
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
add rdx, 2
add rcx, 2
jmp 0x1400135c1
movzx eax, byte [rcx]
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
mov word [0x140043084], di
mov word [0x140043074], di
mov edx, 0x800
mov r8, rbx
lea rdi, [0x140044570]
mov rcx, rdi
call fcn.140029e70
test ax, ax
jle 0x140013722
xor r15d, r15d
jmp 0x140012fc2
test r13, r13
je 0x140013630
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call fcn.140004330
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140013679
mov qword [rbx], r15
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x14001366a
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14001365d
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rdi
call fcn.14002c9cc
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
jmp 0x1400136a6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013696
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x140013699
mov ecx, r14d
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
mov rbx, qword [rbp - 0x29]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1400136ee
mov qword [rbx], r15
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x1400136df
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400136d2
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rdi
call fcn.14002c9cc
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
jmp 0x140013718
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14001370a
mov eax, eax
lea rcx, [0x140000000]
mov r14d, dword [rcx + rax*4 + 0x30680]
mov dword [0x140042de8], r14d
mov byte [0x1400433b0], 0
mov eax, 0xfffffffc
jmp 0x140013b9a
test r15w, r15w
je 0x140013a9f
movzx r9d, word [0x1400419f8]
inc r9w
mov word [0x1400419f8], r9w
cmp r9w, si
jb 0x140013798
mov rdi, qword [rbp - 0x19]
movzx ecx, di
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, di
mov eax, 0x7d00
cmp dx, ax
ja 0x140013718
movzx edx, dx
mov rcx, qword [0x1400419f0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov r10, rax
mov qword [0x1400419f0], rax
test rax, rax
je 0x140013a95
movzx r9d, word [0x1400419f8]
jmp 0x14001379f
mov r10, qword [0x1400419f0]
lea rcx, [0x1400431b0]
cmp word [0x14004308c], 0
je 0x1400137e4
movsxd r8, dword [0x140042d58]
or byte [r8 + rcx], 0xf
inc r8d
mov dword [0x140042d58], r8d
cmp word [0x140043070], 0
je 0x1400137d7
inc word [0x140043078]
xor r15d, r15d
mov word [0x14004308c], r15w
jmp 0x1400137ee
mov r8d, dword [0x140042d58]
xor r15d, r15d
mov esi, 0x200
cmp r8d, esi
jge 0x140013816
movsxd rdi, r8d
add rdi, rcx
mov ecx, esi
sub ecx, r8d
mov edx, ecx
mov eax, 0xff
rep stosb byte [rdi], al
add r8d, edx
mov dword [0x140042d58], r8d
movzx edx, r15w
movzx eax, byte [0x140044570]
cmp byte [0x140043130], al
jne 0x14001386b
mov rcx, r15
lea rdi, [0x140044570]
lea r8, [0x140043130]
nop word [rax + rax]
movzx eax, byte [rcx + rdi + 1]
cmp byte [rcx + r8 + 1], al
jne 0x14001386b
cmp byte [rcx + r8], 0
jne 0x140013859
cmp byte [rcx + rdi], 0
je 0x14001386b
add rcx, 2
add dx, 2
movzx eax, byte [rcx + rdi]
cmp byte [rcx + r8], al
je 0x140013840
movsx eax, dx
cdq
sub eax, edx
sar eax, 1
mov edi, eax
inc di
movzx ecx, r9w
movzx r12d, word [r10 + rcx*2 - 2]
add r12w, word [rbp - 0x47]
mov word [r10 + rcx*2], r12w
add r12w, di
cmp r12w, word [rbp - 0x11]
jbe 0x1400138f4
movzx r8d, word [rbp - 0x49]
mov eax, 0x66666667
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, r8w
mov eax, 0x7d00
cmp dx, ax
ja 0x140013718
movzx edx, dx
mov rcx, qword [0x1400419e8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov rdx, rax
mov qword [0x1400419e8], rax
test rax, rax
je 0x140013a95
movzx r9d, word [0x1400419f8]
mov r10, qword [0x1400419f0]
jmp 0x1400138fb
mov rdx, qword [0x1400419e8]
movzx eax, r9w
movsx rcx, word [r10 + rax*2]
add rcx, rdx
movzx r8d, di
call fcn.1400146e0
test ax, ax
je 0x140013a95
mov qword [rsp + 0x20], r15
lea r9, [rbp - 0x2d]
mov r8d, esi
lea rdx, [0x1400431b0]
mov rsi, qword [rbp - 0x29]
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14001396a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14001395a
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x14001395d
mov ecx, r14d
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
mov eax, 0x200
cmp dword [rbp - 0x2d], eax
je 0x140013aa6
mov eax, 0xfffffffe
jmp 0x140013b9a
movzx eax, byte [rdi]
sub al, 0x30
cmp al, 9
ja 0x140013995
cmp byte [rdi + 1], 0
je 0x140013a95
mov eax, 0xfffffff9
jmp 0x140013b9a
test r13, r13
je 0x1400139ad
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call fcn.140004330
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1400139f6
mov qword [rbx], r15
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x1400139e7
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400139da
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rdi
call fcn.14002c9cc
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
jmp 0x140013a23
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013a13
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x140013a16
mov ecx, r14d
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
mov rbx, qword [rbp - 0x29]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140013a6b
mov qword [rbx], r15
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x140013a5c
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140013a4f
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rdi
call fcn.14002c9cc
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
jmp 0x140013a95
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013a87
mov eax, eax
lea rcx, [0x140000000]
mov r14d, dword [rcx + rax*4 + 0x30680]
mov dword [0x140042de8], r14d
mov byte [0x1400433b0], 0
mov eax, 0xfffffffd
jmp 0x140013b9a
xor r15d, r15d
mov rsi, qword [rbp - 0x29]
mov word [0x1400419fa], r12w
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140013afb
mov qword [rbx], r15
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x140013aec
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140013adf
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rdi
call fcn.14002c9cc
mov edx, 0x10
mov rcx, rbx
call fcn.14002c9cc
jmp 0x140013b28
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013b18
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x30680]
jmp 0x140013b1b
mov ecx, r14d
mov dword [0x140042de8], ecx
mov byte [0x1400433b0], 0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140013b6c
mov qword [rsi], r15
mov rdi, qword [rsi + 8]
test rdi, rdi
je 0x140013b5d
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140013b50
call qword [sym.imp.mfc140u.dll_operator]
mov edx, 0x10
mov rcx, rdi
call fcn.14002c9cc
mov edx, 0x10
mov rcx, rsi
call fcn.14002c9cc
jmp 0x140013b96
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013b88
mov eax, eax
lea rcx, [0x140000000]
mov r14d, dword [rcx + rax*4 + 0x30680]
mov dword [0x140042de8], r14d
mov byte [0x1400433b0], 0
movzx eax, r15w
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.14002c160
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret