Function at 0x140013770
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 [section..data]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rax, qword [0x140041aa0]
mov qword [rbp - 1], rax
xor esi, esi
mov word [0x1400430a4], si
mov word [0x14004309c], si
mov word [0x1400430ac], si
mov dword [0x140043090], esi
mov word [rbp - 0x47], si
mov word [0x1400430b4], si
mov word [0x1400430a8], si
mov word [0x140043094], si
mov word [0x140043088], si
mov word [0x140043098], si
mov word [0x1400430a0], si
mov word [0x140043340], si
mov ecx, esi
lea rbx, [0x140000000]
nop
movzx eax, byte [rcx + rbx + 0x31370]
mov byte [rbp + rcx + 0xf], al
lea rcx, [rcx + 1]
test al, al
jne 0x140013810
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rdi, rax
mov qword [rbp - 9], rax
test rax, rax
je 0x14001386e
mov word [rax], si
mov qword [rax + 8], rsi
lea rcx, [rbp + 0xf]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140013871
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rdi + 8], rax
lea rdx, [rbp + 0xf]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140013871
mov rdi, rsi
mov edx, 1
mov rcx, rdi
call fcn.14002ab70
mov qword [rbp - 9], rax
test rax, rax
jne 0x14001388f
or eax, 0xffffffff
jmp 0x1400149ba
test rdi, rdi
je 0x1400138ac
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400138a3
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rdx, rsi
nop
movzx eax, byte [rdx + rbx + 0x31380]
mov byte [rbp + rdx + 0xf], al
lea rdx, [rdx + 1]
test al, al
jne 0x1400138b0
mov ecx, 0x10
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov rdi, rax
mov qword [rbp - 0x11], rax
test rax, rax
je 0x14001390e
mov word [rax], si
mov qword [rax + 8], rsi
lea rcx, [rbp + 0xf]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x140013911
inc eax
movsxd rcx, eax
call qword [sym.imp.mfc120u.dll_Ordinal_1484]
mov qword [rdi + 8], rax
lea rdx, [rbp + 0xf]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x140013911
mov rdi, rsi
mov edx, 0xa
mov rcx, rdi
call fcn.14002ab70
mov r13, rax
mov qword [rbp - 0x29], rax
test rax, rax
je 0x140014781
mov rcx, rdi
call fcn.14002af10
mov r12d, Ordinal_10005
mov qword [rbp - 0x19], r12
mov r14d, 0x4b0
mov qword [rbp - 0x11], r14
mov ecx, r12d
call qword [sym.imp.MSVCR120.dll_malloc]
mov rbx, rax
mov qword [0x1400419e8], rax
test rax, rax
je 0x1400148a2
mov edi, 0x960
mov qword [rbp - 0x21], rdi
mov ecx, edi
call qword [sym.imp.MSVCR120.dll_malloc]
mov r8, rax
mov qword [0x1400419f0], rax
test rax, rax
je 0x1400148a2
mov word [0x1400419f8], si
movsx rax, si
mov rdi, r8
mov ecx, r14d
rep stosw word [rdi], ax
mov byte [rbx], 0
lea rax, [rbx + 1]
mov ecx, 0x9c
nop word [rax + rax]
mov qword [rax], rsi
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rsi
lea rax, [rax + 0x40]
mov qword [rax - 0x28], rsi
mov qword [rax - 0x20], rsi
mov qword [rax - 0x18], rsi
mov qword [rax - 0x10], rsi
mov qword [rax - 8], rsi
dec rcx
jne 0x1400139b0
mov qword [rax], rsi
mov dword [rax + 8], esi
mov word [rax + 0xc], si
mov byte [rax + 0xe], sil
movzx r9d, r12w
mov word [rbp - 0x49], r12w
movzx edi, si
mov r15d, 0x106
mov r10d, 0x7d00
movzx esi, word [0x1400401b0]
xor eax, eax
cmp ax, si
jae 0x140013c4a
mov word [0x140041a18], di
mov rcx, qword [0x1400404e0]
movzx edx, word [rcx + 0x82]
movsx eax, di
imul edx, eax
add edx, dword [rcx + 0x28]
mov dword [0x140043090], edx
mov rcx, qword [0x1400401c8]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, eax
lea ecx, [rax + 1]
test ecx, 0xfffffffe
jne 0x140013a8e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013a74
mov ecx, eax
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x310a0]
jmp 0x140013a77
mov edx, r15d
mov dword [0x1400430b8], edx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
cmp ebx, 0xffffffff
je 0x140013887
mov rax, qword [0x1400404e0]
movzx ecx, word [rax + 0x82]
mov esi, 0x200
cmp cx, si
ja 0x140013887
movzx r8d, cx
mov rcx, qword [0x1400401c8]
xor ebx, ebx
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x41]
lea rdx, [0x140043140]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140013b13
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013afa
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x140013afd
mov ecx, r15d
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], bl
mov rax, qword [0x1400404e0]
movzx ecx, word [rax + 0x82]
cmp dword [rbp - 0x41], ecx
jne 0x140013887
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x2d]
mov r8d, esi
lea rdx, [0x140043140]
mov rcx, qword [r13]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140013b81
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013b68
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x140013b6b
mov ecx, r15d
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], bl
cmp dword [rbp - 0x2d], esi
jne 0x140014781
cmp di, r14w
jb 0x140013c08
mov r8, qword [rbp - 0x21]
movzx ecx, r8w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, r8w
mov eax, 0x7d00
cmp dx, ax
ja 0x14001452c
movzx edx, dx
mov rcx, qword [0x1400419f0]
call qword [sym.imp.MSVCR120.dll_realloc]
mov r8, rax
mov qword [0x1400419f0], rax
test rax, rax
je 0x1400148a2
movzx ecx, r14w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add r14w, dx
mov qword [rbp - 0x11], r14
movzx eax, r14w
add ax, ax
mov word [rbp - 0x21], ax
jmp 0x140013c0f
mov r8, qword [0x1400419f0]
movzx eax, di
lea rdx, [rax + rax]
mov rax, qword [0x14003e0f0]
movzx ecx, word [rdx + rax]
mov word [rdx + r8], cx
inc di
movzx esi, word [0x1400401b0]
cmp di, si
jb 0x140013a10
mov rbx, qword [0x1400419e8]
movzx r9d, r12w
mov r10d, 0x7d00
movzx eax, di
lea rdx, [rax + rax]
mov rax, qword [0x14003e0f0]
movzx ecx, word [rdx + rax]
mov word [rdx + r8], cx
xor r13d, r13d
movzx edi, r13w
movsx rax, si
lea r14, [rax*2 + 2]
mov rcx, qword [0x14003e0f0]
cmp r13w, word [r14 + rcx]
jae 0x140013d21
cmp di, r12w
jb 0x140013cf4
movzx ecx, r9w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, r9w
cmp dx, r10w
ja 0x14001452c
movzx edx, dx
mov rcx, rbx
call qword [sym.imp.MSVCR120.dll_realloc]
mov rbx, rax
mov qword [0x1400419e8], rax
test rax, rax
je 0x1400148a2
movzx ecx, r12w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add r12w, dx
mov qword [rbp - 0x19], r12
movzx r9d, r12w
mov word [rbp - 0x49], r12w
movzx edx, di
mov rax, qword [0x14003e0e8]
movzx ecx, byte [rdx + rax]
mov byte [rdx + rbx], cl
inc di
mov rcx, qword [0x14003e0f0]
cmp di, word [r14 + rcx]
jae 0x140013d21
mov r10d, 0x7d00
jmp 0x140013c86
mov dword [0x140043090], r13d
mov word [0x1400419f8], si
movzx eax, si
movzx r14d, word [rcx + rax*2 + 2]
sub r14w, word [rcx + rax*2]
mov word [rbp - 0x45], r14w
mov ecx, 4
call qword [sym.imp.MSVCR120.dll_malloc]
mov r13, rax
test rax, rax
je 0x1400148a2
mov edx, 0x800
mov rsi, qword [rbp - 9]
mov r8, rsi
lea rcx, [0x140044530]
call fcn.14002a640
movzx r12d, word [rbp - 0x41]
test ax, ax
jle 0x1400148ac
nop
mov edi, dword [0x14003e1a8]
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, eax
lea ecx, [rax + 1]
test ecx, 0xfffffffe
jne 0x140013dde
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140013dc4
mov ecx, eax
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x310a0]
jmp 0x140013dc7
mov edx, r15d
mov dword [0x1400430b8], edx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
test edi, edi
je 0x140013df4
imul eax, ebx, 0x64
xor edx, edx
div edi
mov edi, eax
mov word [0x14003ee5c], ax
jmp 0x140013dfb
movzx edi, word [0x14003ee5c]
movzx r8d, di
movzx edx, word [0x14003ee44]
mov ecx, r8d
sub ecx, edx
cmp ecx, 1
jl 0x140013e67
inc dx
mov word [0x14003ee44], dx
mov word [0x14003e1a4], di
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
movzx r8d, di
lea rdx, [0x14003e1b0]
call qword [0x140041aa8]
test ax, ax
jne 0x140014460
inc word [0x1400430a0]
lea r9, [0x140044530]
mov rax, r9
xor ebx, ebx
mov ecx, ebx
nop dword [rax]
cmp byte [rax], bl
jne 0x140013e89
cmp byte [rax + 1], bl
je 0x140013e91
add rax, 2
inc ecx
jmp 0x140013e80
add cx, cx
mov word [0x14003ee54], cx
mov dword [r13], 0x20
mov rax, r9
mov rdx, r13
movzx ecx, byte [0x140044530]
or cl, byte [0x140044531]
je 0x1400147a7
movzx r8d, word [r13]
cmp word [rax], r8w
jne 0x140013eeb
mov rdi, rax
nop word [rax + rax]
lea rdx, [rdx + 2]
movzx ecx, word [rdx]
test cx, cx
je 0x140013efd
add rax, 2
cmp word [rax], cx
je 0x140013ed0
mov rax, rdi
mov rdx, r13
add rax, 2
movzx ecx, byte [rax + 1]
or cl, byte [rax]
je 0x1400147a7
jmp 0x140013ec1
test rdi, rdi
je 0x1400147a7
mov rax, r9
mov ecx, ebx
nop dword [rax + rax]
cmp byte [rax], bl
jne 0x140013f19
cmp byte [rax + 1], bl
je 0x140013f21
add rax, 2
inc ecx
jmp 0x140013f10
add cx, cx
add word [0x14004309c], cx
mov word [rdi], bx
add rdi, 2
lea rdx, [rbp - 0x39]
mov rcx, rdi
call fcn.14002a550
test ax, ax
je 0x14001478b
movzx eax, ax
add rdi, rax
lea rdx, [rbp - 0x31]
mov rcx, rdi
call fcn.14002a550
test ax, ax
je 0x1400148a2
movzx eax, ax
add rdi, rax
lea rdx, [rbp - 0x35]
mov rcx, rdi
call fcn.14002a550
test ax, ax
je 0x1400148a2
movzx eax, ax
add rdi, rax
lea rdx, [rbp - 0x2d]
mov rcx, rdi
call fcn.14002a550
test ax, ax
je 0x1400148a2
movzx ecx, ax
add rcx, rdi
lea rdx, [rbp - 0x41]
call fcn.14002a550
test ax, ax
je 0x1400148a2
movzx edx, bx
movzx r9d, word [rbp - 0x39]
movzx ecx, word [rbp - 0x31]
movzx edi, word [rbp - 0x35]
movzx r10d, word [rbp - 0x2d]
movzx r8d, word [0x14003ee64]
cmp bx, r8w
jge 0x140014006
mov rax, qword [rbp - 1]
add rax, 4
nop dword [rax + rax]
cmp word [rax - 4], cx
jne 0x140013ff9
cmp word [rax - 2], r9w
jne 0x140013ff9
cmp word [rax], di
jne 0x140013ff9
cmp word [rax + 2], r10w
je 0x140014006
add rax, 0xa
inc dx
cmp dx, r8w
jl 0x140013fe0
movzx r8d, word [rbp - 0x41]
mov word [rsp + 0x30], di
mov word [rsp + 0x28], cx
mov word [rsp + 0x20], r10w
test r8w, r8w
jne 0x140014024
xor r8d, r8d
call fcn.140014aa0
test ax, ax
jne 0x1400148a2
movsx r8d, word [0x1400430b0]
mov ecx, 0x1fe
sub ecx, r8d
movsxd r9, dword [0x140043090]
cmp r9d, ecx
jge 0x14001406c
inc r8w
lea rcx, [0x140043140]
add rcx, r9
call fcn.140015320
mov r15d, 1
jmp 0x1400143ef
movzx ecx, word [0x1400430ac]
cmp cx, word [0x1400430a0]
cmovl cx, word [0x1400430a0]
mov word [0x1400430ac], cx
mov word [0x1400430a0], bx
movzx ecx, word [0x1400430a4]
cmp cx, word [0x14004309c]
cmovl cx, word [0x14004309c]
mov word [0x1400430a4], cx
mov word [0x14004309c], bx
movzx ecx, word [0x140043098]
lea r10, [0x140043140]
movzx edx, word [0x140043088]
cmp word [0x140043084], bx
je 0x1400140f7
or byte [r9 + r10], 0xf
inc r9d
mov dword [0x140043090], r9d
test cx, cx
je 0x1400140f0
inc dx
mov word [0x140043088], dx
mov word [0x140043084], bx
test cx, cx
je 0x14001413e
cmp word [0x1400430b4], bx
je 0x140014128
movsx eax, word [0x140043094]
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 0x140014137
movsx ecx, word [0x140043094]
movsx eax, dx
add ecx, eax
sub r9d, ecx
mov dword [0x140043090], r9d
mov esi, 0x200
cmp r9d, esi
jge 0x140014166
movsxd rdi, r9d
add rdi, r10
mov edx, esi
sub edx, r9d
mov eax, 0xff
mov ecx, edx
rep stosb byte [rdi], al
add r9d, edx
mov dword [0x140043090], r9d
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x3d]
mov r8d, esi
mov rdx, r10
mov rax, qword [rbp - 0x29]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1400141bc
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x1400141a3
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x1400141a6
mov ecx, r15d
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], bl
cmp dword [rbp - 0x3d], esi
jne 0x140014781
mov r15d, ebx
movzx edi, word [0x1400419f8]
inc di
mov word [0x1400419f8], di
mov rbx, qword [rbp - 0x11]
cmp di, bx
jb 0x140014257
mov r8, qword [rbp - 0x21]
movzx ecx, r8w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add dx, r8w
mov eax, 0x7d00
cmp dx, ax
ja 0x14001452c
movzx edx, dx
mov rcx, qword [0x1400419f0]
call qword [sym.imp.MSVCR120.dll_realloc]
mov r8, rax
mov qword [0x1400419f0], rax
test rax, rax
je 0x1400148a2
movzx ecx, bx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add bx, dx
mov qword [rbp - 0x11], rbx
movzx eax, bx
add ax, ax
mov word [rbp - 0x21], ax
jmp 0x14001425e
mov r8, qword [0x1400419f0]
xor ecx, ecx
movzx edx, cx
movzx eax, byte [0x140044530]
cmp byte [0x140043340], al
jne 0x1400142ac
lea r9, [0x140044530]
lea r10, [0x140043340]
movzx eax, byte [rcx + r9 + 1]
cmp byte [rcx + r10 + 1], al
jne 0x1400142ac
cmp byte [rcx + r10], r15b
jne 0x140014299
cmp byte [rcx + r9], r15b
je 0x1400142ac
add rcx, 2
add dx, 2
movzx eax, byte [rcx + r9]
cmp byte [rcx + r10], al
je 0x140014280
movsx eax, dx
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
inc bx
movzx ecx, di
lea r14, [rcx - 1]
lea r14, [r8 + r14*2]
movzx r12d, word [rbp - 0x45]
add r12w, word [r14]
lea rsi, [r8 + rcx*2]
mov word [rsi], r12w
add r12w, bx
cmp r12w, word [rbp - 0x19]
jbe 0x140014354
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 0x14001452c
movzx edx, dx
mov rcx, qword [0x1400419e8]
call qword [sym.imp.MSVCR120.dll_realloc]
mov rdi, rax
mov qword [0x1400419e8], rax
test rax, rax
je 0x1400148a2
mov r8, qword [rbp - 0x19]
movzx ecx, r8w
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add r8w, dx
mov qword [rbp - 0x19], r8
mov word [rbp - 0x49], r8w
jmp 0x14001435b
mov rdi, qword [0x1400419e8]
movsx rcx, word [rsi]
add rcx, rdi
movzx r8d, bx
call fcn.140015500
test ax, ax
je 0x1400148a2
movzx eax, word [rsi]
sub ax, word [r14]
movzx ecx, word [rbp - 0x47]
cmp cx, ax
cmovb cx, ax
mov word [rbp - 0x47], cx
movzx r14d, bx
mov word [rbp - 0x45], bx
xor ebx, ebx
mov dword [0x140043090], ebx
lea r8d, [rbx + 1]
mov rsi, qword [rbp - 9]
mov rcx, rsi
cmp word [0x140043098], bx
movsx edx, word [0x1400430a8]
jne 0x1400143bc
movsx edx, word [0x14003ee54]
neg edx
call fcn.14002ad10
cmp eax, 0xffffffff
je 0x140013887
mov word [0x1400430a8], bx
mov word [0x140043098], bx
mov word [0x1400430b4], bx
mov word [0x140043088], bx
mov word [0x140044530], bx
lea rdi, [0x140044530]
mov rcx, rdi
lea rax, [0x140043340]
mov rdx, rax
movzx eax, byte [rcx]
test al, al
jne 0x14001440f
cmp byte [rcx + 1], al
je 0x140014422
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
add rdx, 2
add rcx, 2
jmp 0x140014403
movzx eax, byte [rcx]
mov byte [rdx], al
movzx eax, byte [rcx + 1]
mov byte [rdx + 1], al
mov word [0x1400430b0], bx
mov word [0x14004308c], bx
mov edx, 0x800
mov r8, rsi
mov rcx, rdi
call fcn.14002a640
test ax, ax
jle 0x140014536
mov r15d, 0x106
jmp 0x140013d80
test r13, r13
je 0x14001446e
mov rcx, r13
call qword [sym.imp.MSVCR120.dll_free]
call fcn.1400049e0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140014498
xor ebx, ebx
mov qword [rsi], rbx
mov rcx, rsi
call fcn.14002a950
mov rcx, rsi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
jmp 0x1400144d1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x1400144b5
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x1400144b8
mov ecx, r15d
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
xor ebx, ebx
mov rdi, qword [rbp - 0x29]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1400144f8
mov qword [rdi], rbx
mov rcx, rdi
call fcn.14002a950
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
jmp 0x14001452c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140014514
mov eax, eax
lea rcx, [0x140000000]
mov r15d, dword [rcx + rax*4 + 0x310a0]
mov dword [0x1400430b8], r15d
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
mov eax, 0xfffffffc
jmp 0x1400149ba
test r15w, r15w
je 0x1400148b5
movzx ebx, word [0x1400419f8]
inc bx
mov word [0x1400419f8], bx
cmp bx, word [rbp - 0x11]
jb 0x1400145a4
mov rdi, qword [rbp - 0x21]
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 0x14001452c
movzx edx, dx
mov rcx, qword [0x1400419f0]
call qword [sym.imp.MSVCR120.dll_realloc]
mov r9, rax
mov qword [0x1400419f0], rax
test rax, rax
jne 0x1400145ab
lea eax, [r9 - 3]
jmp 0x1400149ba
mov r9, qword [0x1400419f0]
lea rcx, [0x140043140]
cmp word [0x140043084], 0
je 0x1400145f0
movsxd r8, dword [0x140043090]
or byte [r8 + rcx], 0xf
inc r8d
mov dword [0x140043090], r8d
cmp word [0x140043098], 0
je 0x1400145e3
inc word [0x140043088]
xor r10d, r10d
mov word [0x140043084], r10w
jmp 0x1400145fa
mov r8d, dword [0x140043090]
xor r10d, r10d
mov r15d, 0x200
cmp r8d, r15d
jge 0x140014624
movsxd rdi, r8d
add rdi, rcx
mov ecx, r15d
sub ecx, r8d
mov edx, ecx
mov eax, 0xff
rep stosb byte [rdi], al
add r8d, edx
mov dword [0x140043090], r8d
movzx edx, r10w
movzx eax, byte [0x140044530]
cmp byte [0x140043340], al
jne 0x14001467b
mov rcx, r10
lea rdi, [0x140044530]
lea r8, [0x140043340]
nop dword [rax + rax]
movzx eax, byte [rcx + rdi + 1]
cmp byte [rcx + r8 + 1], al
jne 0x14001467b
cmp byte [rcx + r8], 0
jne 0x140014669
cmp byte [rcx + rdi], 0
je 0x14001467b
add rcx, 2
add dx, 2
movzx eax, byte [rcx + rdi]
cmp byte [rcx + r8], al
je 0x140014650
movsx eax, dx
cdq
sub eax, edx
sar eax, 1
mov edi, eax
inc di
movzx ecx, bx
movzx r12d, word [r9 + rcx*2 - 2]
add r12w, r14w
lea rbx, [r9 + rcx*2]
mov word [rbx], r12w
add r12w, di
cmp r12w, word [rbp - 0x19]
jbe 0x1400146f7
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 0x14001452c
movzx edx, dx
mov rcx, qword [0x1400419e8]
call qword [sym.imp.MSVCR120.dll_realloc]
mov qword [0x1400419e8], rax
test rax, rax
jne 0x1400146fe
mov eax, 0xfffffffd
jmp 0x1400149ba
mov rax, qword [0x1400419e8]
movsx rcx, word [rbx]
add rcx, rax
movzx r8d, di
call fcn.140015500
test ax, ax
je 0x1400148a2
xor r14d, r14d
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x3d]
mov r8d, r15d
lea rdx, [0x140043140]
mov rbx, qword [rbp - 0x29]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140014777
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14001475b
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x140014760
mov ecx, 0x106
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], r14b
cmp dword [rbp - 0x3d], r15d
je 0x1400148bc
mov eax, 0xfffffffe
jmp 0x1400149ba
movzx eax, byte [rdi]
sub al, 0x30
cmp al, 9
ja 0x14001479d
cmp byte [rdi + 1], bl
je 0x1400148a2
mov eax, 0xfffffff9
jmp 0x1400149ba
test r13, r13
je 0x1400147b5
mov rcx, r13
call qword [sym.imp.MSVCR120.dll_free]
call fcn.1400049e0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1400147f6
mov qword [rsi], rbx
mov rdi, qword [rsi + 8]
test rdi, rdi
je 0x1400147eb
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400147e2
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rsi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
jmp 0x14001482c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140014813
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x140014816
mov ecx, r15d
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], bl
mov rbx, qword [rbp - 0x29]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x14001486e
xor eax, eax
mov qword [rbx], rax
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x140014863
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14001485a
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rbx
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
jmp 0x1400148a2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14001488a
mov eax, eax
lea rcx, [0x140000000]
mov r15d, dword [rcx + rax*4 + 0x310a0]
mov dword [0x1400430b8], r15d
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
mov eax, 0xfffffffd
jmp 0x1400149ba
mov rbx, qword [rbp - 0x29]
xor r14d, r14d
jmp 0x1400148c2
mov rbx, qword [rbp - 0x29]
xor r14d, r14d
mov r15d, 0x106
mov word [0x1400419fa], r12w
mov rcx, r13
call qword [sym.imp.MSVCR120.dll_free]
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x14001490f
mov qword [rsi], r14
mov rdi, qword [rsi + 8]
test rdi, rdi
je 0x140014904
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400148fb
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rsi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
jmp 0x140014946
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14001492c
mov eax, eax
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x14001492f
mov ecx, r15d
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140014982
mov qword [rbx], r14
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x140014977
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14001496e
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rdi
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
mov rcx, rbx
call qword [sym.imp.mfc120u.dll_Ordinal_1486]
jmp 0x1400149b6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x14001499e
mov eax, eax
lea rcx, [0x140000000]
mov r15d, dword [rcx + rax*4 + 0x310a0]
mov dword [0x1400430b8], r15d
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
movzx eax, r14w
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.14002c960
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