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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov dword [rbp - 4], 0
cmp dword [rbp - 4], 0x13
jg 0x416079
movss xmm0, dword [0x0050530c]
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*8]
lea rax, [0x00505140]
mov eax, dword [rdx + rax]
cvtsi2ss xmm1, eax
subss xmm0, xmm1
call fcn.004cccc0
movss xmm1, dword [0x004d8924]
comiss xmm1, xmm0
jbe 0x415f72
movss xmm0, dword [0x00505310]
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*8]
lea rax, [0x00505144]
mov eax, dword [rdx + rax]
cvtsi2ss xmm1, eax
subss xmm0, xmm1
movaps xmm1, xmm0
movss xmm0, dword [0x004d8924]
comiss xmm0, xmm1
jb 0x415f72
mov eax, 1
jmp 0x415f77
mov eax, 0
test al, al
je 0x416070
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*8]
lea rax, [0x00505144]
mov eax, dword [rdx + rax]
cvtsi2ss xmm1, eax
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*8]
lea rax, [0x00505140]
mov eax, dword [rdx + rax]
cvtsi2ss xmm0, eax
call fcn.004038a3
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*8]
lea rax, [0x00505140]
mov eax, dword [rdx + rax]
cmp eax, 0x14
jne 0x415feb
lea rdx, [0x004d784e]
mov rcx, qword [0x004de010]
call fcn.004cf880
jmp 0x415ffe
lea rdx, [0x004d7638]
mov rcx, qword [0x004de010]
call fcn.004cf880
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*8]
lea rax, [0x00505144]
mov dword [rdx + rax], 0xffffffff
mov eax, dword [rbp - 4]
cdqe
lea rdx, [rax*8]
lea rax, [0x00505144]
mov eax, dword [rdx + rax]
mov edx, dword [rbp - 4]
movsxd rdx, edx
lea rcx, [rdx*8]
lea rdx, [0x00505140]
mov dword [rcx + rdx], eax
mov eax, dword [0x005051f8]
mov edx, dword [0x00505060]
add edx, 4
add edx, edx
sub eax, edx
mov dword [0x005051f8], eax
mov eax, dword [0x00505058]
add eax, 2
mov dword [0x00505058], eax
add dword [rbp - 4], 1
jmp 0x415ef1
movss xmm0, dword [0x0050530c]
movss xmm1, dword [0x00505324]
subss xmm0, xmm1
movss dword [0x0050530c], xmm0
movss xmm0, dword [0x00505310]
movss xmm1, dword [0x00505328]
subss xmm0, xmm1
movss dword [0x00505310], xmm0
mov eax, dword [0x00505208]
cmp eax, 8
jg 0x416158
movss xmm0, dword [0x0050530c]
movss xmm1, dword [0x005052e0]
comiss xmm0, xmm1
jbe 0x41610e
movss xmm1, dword [0x00505324]
movss xmm0, dword [0x004d88c8]
comiss xmm0, xmm1
jbe 0x41610e
movss xmm0, dword [0x00505324]
cvtss2sd xmm1, xmm0
movsd xmm0, qword [0x004d8a70]
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [0x00505324], xmm0
movss xmm1, dword [0x0050530c]
movss xmm0, dword [0x005052e0]
comiss xmm0, xmm1
jbe 0x416158
movss xmm0, dword [0x00505324]
comiss xmm0, dword [0x004d88d0]
jbe 0x416158
movss xmm0, dword [0x00505324]
cvtss2sd xmm0, xmm0
movsd xmm1, qword [0x004d8a70]
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [0x00505324], xmm0
mov eax, dword [0x00505208]
test eax, eax
jne 0x41621b
nop
call sub.msvcrt.dll_rand
mov ecx, eax
movsxd rax, ecx
imul rax, rax, 0x2aaaaaab
shr rax, 0x20
mov edx, eax
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
sub ecx, eax
mov edx, ecx
mov dword [0x00505208], edx
mov eax, dword [0x00505208]
cmp eax, 0xb
jne 0x4161d2
movss xmm0, dword [0x0050530c]
movss xmm1, dword [0x004d8904]
subss xmm0, xmm1
call fcn.004cccc0
movss xmm1, dword [0x004d88c0]
comiss xmm1, xmm0
jb 0x4161d2
mov eax, 1
jmp 0x4161d7
mov eax, 0
test al, al
je 0x4161dd
jmp 0x416167
mov eax, dword [0x00505208]
cmp eax, 0xb
jne 0x41621b
call sub.msvcrt.dll_rand
mov ecx, eax
movsxd rax, ecx
imul rax, rax, 0x66666667
shr rax, 0x20
mov edx, eax
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov edx, eax
shl edx, 2
add edx, eax
mov eax, ecx
sub eax, edx
mov dword [0x005052a8], eax
mov eax, dword [0x00505208]
cmp eax, 1
jne 0x416647
mov eax, dword [0x005052a4]
add eax, 1
mov dword [0x005052a4], eax
mov eax, dword [0x005052a4]
cmp eax, 6
jne 0x416647
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xd
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a8]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x0050530c]
cvttss2si edx, xmm0
mov eax, dword [0x00505084]
lea ecx, [rdx - 4]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072bc]
mov dword [rdx + rax], ecx
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xd
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a8]
movss xmm0, dword [0x004d88cc]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x0050530c]
cvttss2si edx, xmm0
mov eax, dword [0x00505084]
lea ecx, [rdx + 2]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072bc]
mov dword [rdx + rax], ecx
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xd
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov dword [0x00505208], 0
pxor xmm0, xmm0
movss dword [0x00505328], xmm0
movss xmm0, dword [0x00505328]
movss dword [0x00505324], xmm0
mov r8d, 0x28
mov edx, 0
lea rcx, [0x005052a0]
call sub.msvcrt.dll_memset
mov eax, dword [0x00505208]
cmp eax, 1
jle 0x416874
mov eax, dword [0x00505208]
cmp eax, 6
jg 0x416874
mov eax, dword [0x005052a4]
add eax, 1
mov dword [0x005052a4], eax
mov eax, dword [0x005052a4]
cmp eax, 6
jne 0x416874
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov edx, dword [0x00505208]
mov eax, dword [0x00505084]
lea ecx, [rdx + 0xb]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], ecx
call sub.msvcrt.dll_rand
movsxd rdx, eax
imul rdx, rdx, 0x51eb851f
shr rdx, 0x20
mov ecx, edx
sar ecx, 5
cdq
sub ecx, edx
mov edx, ecx
imul edx, edx, 0x64
sub eax, edx
mov edx, eax
cvtsi2sd xmm0, edx
movsd xmm1, qword [0x004d8a20]
divsd xmm0, xmm1
movapd xmm1, xmm0
movsd xmm0, qword [0x004d8a28]
addsd xmm0, xmm1
mov eax, dword [0x00505084]
cvtsd2ss xmm0, xmm0
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505208]
cmp eax, 5
jne 0x41680f
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm1, dword [rdx + rax]
movss xmm0, dword [0x004d892c]
mulss xmm0, xmm1
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88e4]
divss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov dword [0x00505208], 0
pxor xmm0, xmm0
movss dword [0x00505328], xmm0
movss xmm0, dword [0x00505328]
movss dword [0x00505324], xmm0
mov r8d, 0x28
mov edx, 0
lea rcx, [0x005052a0]
call sub.msvcrt.dll_memset
mov eax, dword [0x00505208]
cmp eax, 7
jne 0x416ca0
mov eax, dword [0x005052a4]
add eax, 1
mov dword [0x005052a4], eax
mov eax, dword [0x005052a4]
cmp eax, 6
jne 0x416ca0
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xe
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a8]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x0050530c]
cvttss2si edx, xmm0
mov eax, dword [0x00505084]
lea ecx, [rdx - 4]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072bc]
mov dword [rdx + rax], ecx
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xe
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a8]
movss xmm0, dword [0x004d88cc]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x0050530c]
cvttss2si edx, xmm0
mov eax, dword [0x00505084]
lea ecx, [rdx + 2]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072bc]
mov dword [rdx + rax], ecx
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xe
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov dword [0x00505208], 0
pxor xmm0, xmm0
movss dword [0x00505328], xmm0
movss xmm0, dword [0x00505328]
movss dword [0x00505324], xmm0
mov r8d, 0x28
mov edx, 0
lea rcx, [0x005052a0]
call sub.msvcrt.dll_memset
mov eax, dword [0x00505208]
cmp eax, 8
jne 0x4170cc
mov eax, dword [0x005052a4]
add eax, 1
mov dword [0x005052a4], eax
mov eax, dword [0x005052a4]
cmp eax, 6
jne 0x4170cc
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xf
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a8]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x0050530c]
cvttss2si edx, xmm0
mov eax, dword [0x00505084]
lea ecx, [rdx - 4]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072bc]
mov dword [rdx + rax], ecx
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xf
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a8]
movss xmm0, dword [0x004d88cc]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x0050530c]
cvttss2si edx, xmm0
mov eax, dword [0x00505084]
lea ecx, [rdx + 2]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072bc]
mov dword [rdx + rax], ecx
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xf
movss xmm0, dword [0x0050530c]
cvttss2si eax, xmm0
lea edx, [rax - 1]
mov eax, dword [0x00505084]
cvtsi2ss xmm0, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov dword [0x00505208], 0
pxor xmm0, xmm0
movss dword [0x00505328], xmm0
movss xmm0, dword [0x00505328]
movss dword [0x00505324], xmm0
mov r8d, 0x28
mov edx, 0
lea rcx, [0x005052a0]
call sub.msvcrt.dll_memset
mov eax, dword [0x00505208]
cmp eax, 9
jne 0x417259
pxor xmm0, xmm0
movss dword [0x00505324], xmm0
mov eax, dword [0x005052a4]
add eax, 1
mov dword [0x005052a4], eax
mov eax, dword [0x005052a4]
cmp eax, 6
je 0x417110
mov eax, dword [0x005052a4]
cmp eax, 8
jne 0x417211
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xd
movss xmm0, dword [0x0050530c]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x005052a4]
cmp eax, 7
jle 0x417259
mov dword [0x00505208], 0
pxor xmm0, xmm0
movss dword [0x00505328], xmm0
movss xmm0, dword [0x00505328]
movss dword [0x00505324], xmm0
mov r8d, 0x28
mov edx, 0
lea rcx, [0x005052a0]
call sub.msvcrt.dll_memset
mov eax, dword [0x00505208]
cmp eax, 0xa
jne 0x4173fc
pxor xmm0, xmm0
movss dword [0x00505324], xmm0
mov eax, dword [0x005052a4]
add eax, 1
mov dword [0x005052a4], eax
mov eax, dword [0x005052a4]
cmp eax, 6
je 0x4172b3
mov eax, dword [0x005052a4]
cmp eax, 8
je 0x4172b3
mov eax, dword [0x005052a4]
cmp eax, 0xa
je 0x4172b3
mov eax, dword [0x005052a4]
cmp eax, 0xc
jne 0x4173b4
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0xd
movss xmm0, dword [0x0050530c]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88c0]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x005052a4]
cmp eax, 0xb
jle 0x4173fc
mov dword [0x00505208], 0
pxor xmm0, xmm0
movss dword [0x00505328], xmm0
movss xmm0, dword [0x00505328]
movss dword [0x00505324], xmm0
mov r8d, 0x28
mov edx, 0
lea rcx, [0x005052a0]
call sub.msvcrt.dll_memset
mov eax, dword [0x00505208]
cmp eax, 0xb
jne 0x417b04
pxor xmm0, xmm0
movss dword [0x00505324], xmm0
mov eax, dword [0x005052a4]
add eax, 1
mov dword [0x005052a4], eax
mov eax, dword [0x005052a4]
cmp eax, 7
jle 0x417783
mov dword [rbp - 8], 1
cmp dword [rbp - 8], 4
jg 0x417783
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x005052a8]
imul eax, eax, 0x64
lea edx, [rax + 0x50]
mov eax, dword [0x005052a4]
shl eax, 2
lea ecx, [rdx + rax]
mov eax, dword [0x00505084]
mov edx, dword [rbp - 8]
add ecx, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], ecx
movss xmm0, dword [0x0050530c]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movaps xmm1, xmm0
cvtsi2ss xmm0, dword [rbp - 8]
mov eax, dword [0x00505084]
addss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88e4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0x63
mov eax, dword [0x00505084]
movss xmm0, dword [0x0050530c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movaps xmm1, xmm0
cvtsi2ss xmm0, dword [rbp - 8]
mov eax, dword [0x00505084]
addss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88e4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0x63
movss xmm0, dword [0x0050530c]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d8924]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movaps xmm1, xmm0
cvtsi2ss xmm0, dword [rbp - 8]
mov eax, dword [0x00505084]
addss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88e4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
add dword [rbp - 8], 1
jmp 0x41743c
mov eax, dword [0x005052a4]
cmp eax, 0x13
jle 0x417b04
mov dword [rbp - 0xc], 1
cmp dword [rbp - 0xc], 4
jg 0x417ac7
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0x62
movss xmm0, dword [0x0050530c]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movaps xmm1, xmm0
cvtsi2ss xmm0, dword [rbp - 0xc]
mov eax, dword [0x00505084]
addss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88e4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0x62
mov eax, dword [0x00505084]
movss xmm0, dword [0x0050530c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movaps xmm1, xmm0
cvtsi2ss xmm0, dword [rbp - 0xc]
mov eax, dword [0x00505084]
addss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88e4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
mov eax, dword [0x00505084]
add eax, 1
mov dword [0x00505084], eax
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072b0]
mov dword [rdx + rax], 0x62
movss xmm0, dword [0x0050530c]
mov eax, dword [0x00505084]
movss xmm1, dword [0x004d8924]
subss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a0]
movss dword [rdx + rax], xmm0
movss xmm0, dword [0x00505310]
movss xmm1, dword [0x004d88c0]
subss xmm0, xmm1
movaps xmm1, xmm0
cvtsi2ss xmm0, dword [rbp - 0xc]
mov eax, dword [0x00505084]
addss xmm0, xmm1
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072a4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072ac]
movss xmm0, dword [0x004d88e4]
movss dword [rdx + rax], xmm0
mov eax, dword [0x00505084]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
lea rax, [0x005072c0]
mov dword [rdx + rax], 1
add dword [rbp - 0xc], 1
jmp 0x417799
mov dword [0x00505208], 0
pxor xmm0, xmm0
movss dword [0x00505328], xmm0
movss xmm0, dword [0x00505328]
movss dword [0x00505324], xmm0
mov r8d, 0x28
mov edx, 0
lea rcx, [0x005052a0]
call sub.msvcrt.dll_memset
nop
add rsp, 0x30
pop rbp
ret