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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x1c8
mov byte [rsp + 0x21], 0
mov qword [rsp + 0x28], 0
jmp 0x1802855f5
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
je 0x180287016
cmp dword [rsp + 0x34], 0x25
je 0x18028569a
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0xc0], 1
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0x25
je 0x180285674
cmp dword [rsp + 0x34], 0
je 0x180285674
mov eax, dword [rsp + 0xc0]
inc eax
mov dword [rsp + 0xc0], eax
jmp 0x180285632
mov r8d, dword [rsp + 0xc0]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x1d0]
call fcn.180285380
cmp dword [rsp + 0x34], 0
jne 0x18028569a
jmp 0x180287016
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
jne 0x1802856e2
mov r8d, 1
lea rdx, [0x18039b76c]
mov rcx, qword [rsp + 0x1d0]
call fcn.180285380
jmp 0x180287016
mov byte [rsp + 0x4f], 0
mov al, byte [rsp + 0x4f]
mov byte [rsp + 0x3d], al
mov al, byte [rsp + 0x3d]
mov byte [rsp + 0x3f], al
mov al, byte [rsp + 0x3f]
mov byte [rsp + 0x50], al
mov al, byte [rsp + 0x50]
mov byte [rsp + 0x4c], al
mov al, byte [rsp + 0x4c]
mov byte [rsp + 0x44], al
mov byte [rsp + 0x70], 0
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x80], 0x20
je 0x18028576b
cmp dword [rsp + 0x80], 0x21
je 0x180285779
cmp dword [rsp + 0x80], 0x23
je 0x180285772
cmp dword [rsp + 0x80], 0x2b
je 0x180285764
cmp dword [rsp + 0x80], 0x2d
je 0x18028575d
cmp dword [rsp + 0x80], 0x30
je 0x180285780
jmp 0x180285787
mov byte [rsp + 0x44], 1
jmp 0x18028578c
mov byte [rsp + 0x4c], 1
jmp 0x18028578c
mov byte [rsp + 0x50], 1
jmp 0x18028578c
mov byte [rsp + 0x3f], 1
jmp 0x18028578c
mov byte [rsp + 0x3d], 1
jmp 0x18028578c
mov byte [rsp + 0x4f], 1
jmp 0x18028578c
mov byte [rsp + 0x70], 1
movzx eax, byte [rsp + 0x70]
test eax, eax
jne 0x1802857c2
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0
jne 0x180285714
mov dword [rsp + 0x48], 0
cmp dword [rsp + 0x34], 0x2a
jne 0x18028582e
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax - 8]
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
jge 0x18028580a
mov byte [rsp + 0x44], 1
mov eax, dword [rsp + 0x48]
neg eax
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
jmp 0x180285873
cmp dword [rsp + 0x34], 0x30
jl 0x180285873
cmp dword [rsp + 0x34], 0x39
jg 0x180285873
mov eax, dword [rsp + 0x48]
imul eax, eax, 0xa
mov ecx, dword [rsp + 0x34]
lea eax, [rax + rcx - 0x30]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
jmp 0x18028582e
cmp dword [rsp + 0x34], 0x2e
jne 0x18028594e
mov dword [rsp + 0x30], 0
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0x2a
jne 0x180285907
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax - 8]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
jge 0x1802858e3
mov eax, dword [rsp + 0x30]
neg eax
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
jmp 0x18028594c
cmp dword [rsp + 0x34], 0x30
jl 0x18028594c
cmp dword [rsp + 0x34], 0x39
jg 0x18028594c
mov eax, dword [rsp + 0x30]
imul eax, eax, 0xa
mov ecx, dword [rsp + 0x34]
lea eax, [rax + rcx - 0x30]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
jmp 0x180285907
jmp 0x180285956
mov dword [rsp + 0x30], 0xffffffff
cmp dword [rsp + 0x34], 0x6c
jne 0x1802859bb
mov byte [rsp + 0x4e], 1
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x34], 0x6c
jne 0x1802859b4
mov byte [rsp + 0x3e], 1
mov rax, qword [rsp + 0x1e0]
inc rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x1e0]
movsx eax, byte [rax]
mov dword [rsp + 0x34], eax
jmp 0x1802859b9
mov byte [rsp + 0x3e], 0
jmp 0x1802859c8
mov byte [rsp + 0x3e], 0
mov al, byte [rsp + 0x3e]
mov byte [rsp + 0x4e], al
mov eax, 6
imul rax, rax, 0
lea rcx, [0x18031bcf0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0x21], 0
mov dword [rsp + 0x54], 0
jmp 0x1802859ff
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
cmp dword [rsp + 0x54], 0x17
jge 0x180285a75
movsxd rax, dword [rsp + 0x54]
imul rax, rax, 6
lea rcx, [0x18031bcf0]
movsx eax, byte [rcx + rax]
cmp dword [rsp + 0x34], eax
jne 0x180285a73
movsxd rax, dword [rsp + 0x54]
imul rax, rax, 6
lea rcx, [0x18031bcf0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xa8], rax
cmp dword [rsp + 0x1d8], 0
jne 0x180285a5b
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 2]
and eax, 2
test eax, eax
jne 0x180285a6c
mov rax, qword [rsp + 0xa8]
mov al, byte [rax + 3]
mov byte [rsp + 0x21], al
jmp 0x180285a71
jmp 0x180287016
jmp 0x180285a75
jmp 0x1802859f5
mov qword [rsp + 0xb0], 0
movzx eax, byte [rsp + 0x21]
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0xb
jg 0x180285af9
cmp dword [rsp + 0x58], 0xa
jge 0x180286b43
cmp dword [rsp + 0x58], 1
je 0x180285b37
cmp dword [rsp + 0x58], 1
jle 0x180286f6d
cmp dword [rsp + 0x58], 4
jle 0x180286096
cmp dword [rsp + 0x58], 5
je 0x1802869a4
cmp dword [rsp + 0x58], 5
jle 0x180286f6d
cmp dword [rsp + 0x58], 7
jle 0x180286aa3
cmp dword [rsp + 0x58], 8
je 0x1802869e6
cmp dword [rsp + 0x58], 9
je 0x180286a11
jmp 0x180286f6d
cmp dword [rsp + 0x58], 0xc
je 0x180286e19
cmp dword [rsp + 0x58], 0xd
je 0x180286e85
cmp dword [rsp + 0x58], 0xe
je 0x180285b2d
cmp dword [rsp + 0x58], 0xf
je 0x180286b43
cmp dword [rsp + 0x58], 0x10
je 0x180285b37
jmp 0x180286f6d
mov byte [rsp + 0x3e], 1
mov byte [rsp + 0x4e], 0
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 2]
and eax, 1
test eax, eax
je 0x180285c63
movzx eax, byte [rsp + 0x3e]
test eax, eax
je 0x180285b81
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax - 8]
mov qword [rsp + 0xc8], rax
jmp 0x180285bdc
movzx eax, byte [rsp + 0x4e]
test eax, eax
je 0x180285bb4
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
movsxd rax, dword [rax - 8]
mov qword [rsp + 0xc8], rax
jmp 0x180285bdc
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
movsxd rax, dword [rax - 8]
mov qword [rsp + 0xc8], rax
cmp qword [rsp + 0xc8], 0
jge 0x180285c29
movabs rax, 0x8000000000000000
cmp qword [rsp + 0xc8], rax
jne 0x180285c0f
movabs rax, 0x8000000000000000
mov qword [rsp + 0x90], rax
jmp 0x180285c22
mov rax, qword [rsp + 0xc8]
neg rax
mov qword [rsp + 0x90], rax
mov byte [rsp + 0x20], 0x2d
jmp 0x180285c5e
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x90], rax
movzx eax, byte [rsp + 0x4c]
test eax, eax
je 0x180285c49
mov byte [rsp + 0x20], 0x2b
jmp 0x180285c5e
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x180285c59
mov byte [rsp + 0x20], 0x20
jmp 0x180285c5e
mov byte [rsp + 0x20], 0
jmp 0x180285cf4
movzx eax, byte [rsp + 0x3e]
test eax, eax
je 0x180285c96
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax - 8]
mov qword [rsp + 0x90], rax
jmp 0x180285cef
movzx eax, byte [rsp + 0x4e]
test eax, eax
je 0x180285cc8
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax - 8]
mov qword [rsp + 0x90], rax
jmp 0x180285cef
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax - 8]
mov qword [rsp + 0x90], rax
mov byte [rsp + 0x20], 0
cmp qword [rsp + 0x90], 0
jne 0x180285d04
mov byte [rsp + 0x3f], 0
movzx eax, byte [rsp + 0x4f]
test eax, eax
je 0x180285d77
movsx eax, byte [rsp + 0x20]
test eax, eax
je 0x180285d23
mov dword [rsp + 0xd0], 1
jmp 0x180285d2e
mov dword [rsp + 0xd0], 0
mov eax, dword [rsp + 0xd0]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
cmp dword [rsp + 0x30], eax
jge 0x180285d77
movsx eax, byte [rsp + 0x20]
test eax, eax
je 0x180285d59
mov dword [rsp + 0x104], 1
jmp 0x180285d64
mov dword [rsp + 0x104], 0
mov eax, dword [rsp + 0x104]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0x3c
jge 0x180285d9b
mov dword [rsp + 0xa0], 0x46
lea rax, [rsp + 0x170]
mov qword [rsp + 0xb8], rax
jmp 0x180285de9
mov eax, dword [rsp + 0x30]
add eax, 0xa
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0xa0]
call fcn.180287c68
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], rax
cmp qword [rsp + 0xb8], 0
jne 0x180285de9
mov rax, qword [rsp + 0x1d0]
mov byte [rax + 0x25], 1
jmp 0x180287016
mov eax, dword [rsp + 0xa0]
dec eax
cdqe
mov rcx, qword [rsp + 0xb8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
movzx eax, byte [rsp + 0x21]
cmp eax, 0x10
jne 0x180285ebf
xor edx, edx
mov rax, qword [rsp + 0x90]
mov ecx, 0xa
div rcx
mov rax, rdx
mov dword [rsp + 0xa4], eax
cmp dword [rsp + 0xa4], 4
jge 0x180285e60
xor edx, edx
mov rax, qword [rsp + 0x90]
mov ecx, 0xa
div rcx
xor edx, edx
mov ecx, 0xa
div rcx
mov rax, rdx
cmp rax, 1
jne 0x180285e6b
mov dword [rsp + 0xa4], 0
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0xa4]
lea eax, [rax + rax + 1]
cdqe
lea rcx, str.thstndrd
mov rdx, qword [rsp + 0x28]
mov al, byte [rcx + rax]
mov byte [rdx], al
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0xa4]
shl eax, 1
cdqe
lea rcx, str.thstndrd
mov rdx, qword [rsp + 0x28]
mov al, byte [rcx + rax]
mov byte [rdx], al
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 4]
lea rcx, str.0123456789ABCDEF0123456789abcdef
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x168], rax
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 1]
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
movsxd rax, dword [rsp + 0xfc]
mov qword [rsp + 0x158], rax
xor edx, edx
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x158]
div rcx
mov rax, rdx
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x168]
mov al, byte [rdx + rax]
mov byte [rcx], al
movsxd rax, dword [rsp + 0xfc]
mov qword [rsp + 0x150], rax
xor edx, edx
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x150]
div rcx
mov qword [rsp + 0x90], rax
cmp qword [rsp + 0x90], 0
ja 0x180285ef3
mov eax, dword [rsp + 0xa0]
dec eax
cdqe
mov rcx, qword [rsp + 0xb8]
add rcx, rax
mov rax, rcx
sub rax, qword [rsp + 0x28]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x54], eax
jmp 0x180285fb0
mov eax, dword [rsp + 0x54]
dec eax
mov dword [rsp + 0x54], eax
cmp dword [rsp + 0x54], 0
jle 0x180285fce
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov byte [rax], 0x30
jmp 0x180285fa6
movsx eax, byte [rsp + 0x20]
test eax, eax
je 0x180285fef
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov cl, byte [rsp + 0x20]
mov byte [rax], cl
movzx eax, byte [rsp + 0x3f]
test eax, eax
je 0x18028606f
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 5]
test eax, eax
je 0x18028606f
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 5]
lea rcx, [0x18031c114]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x128], rax
jmp 0x18028603e
mov rax, qword [rsp + 0x128]
inc rax
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x128]
mov al, byte [rax]
mov byte [rsp + 0x73], al
movsx eax, byte [rsp + 0x73]
test eax, eax
je 0x18028606f
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov cl, byte [rsp + 0x73]
mov byte [rax], cl
jmp 0x18028602b
mov eax, dword [rsp + 0xa0]
dec eax
cdqe
mov rcx, qword [rsp + 0xb8]
add rcx, rax
mov rax, rcx
sub rax, qword [rsp + 0x28]
mov dword [rsp + 0x40], eax
jmp 0x180286f72
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
movsd xmm0, qword [rax - 8]
movsd qword [rsp + 0x68], xmm0
cmp dword [rsp + 0x30], 0
jge 0x1802860cc
mov dword [rsp + 0x30], 6
xorps xmm0, xmm0
comisd xmm0, xmmword [rsp + 0x68]
jbe 0x1802860f2
movsd xmm0, qword [rsp + 0x68]
xorpd xmm0, xmmword [0x18032fdc0]
movsd qword [rsp + 0x68], xmm0
mov byte [rsp + 0x20], 0x2d
jmp 0x180286117
movzx eax, byte [rsp + 0x4c]
test eax, eax
je 0x180286102
mov byte [rsp + 0x20], 0x2b
jmp 0x180286117
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x180286112
mov byte [rsp + 0x20], 0x20
jmp 0x180286117
mov byte [rsp + 0x20], 0
movzx eax, byte [rsp + 0x21]
cmp eax, 4
jne 0x180286132
cmp dword [rsp + 0x30], 0
jle 0x180286132
mov eax, dword [rsp + 0x30]
dec eax
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x54], eax
movsd xmm0, qword [0x18032fc88]
movsd qword [rsp + 0x110], xmm0
jmp 0x180286171
mov eax, dword [rsp + 0x54]
dec eax
mov dword [rsp + 0x54], eax
movsd xmm0, qword [rsp + 0x110]
mulsd xmm0, qword [0x18032fc80]
movsd qword [rsp + 0x110], xmm0
cmp dword [rsp + 0x54], 0
jle 0x18028617a
jmp 0x18028614d
movzx eax, byte [rsp + 0x21]
cmp eax, 2
jne 0x180286199
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x110]
movsd qword [rsp + 0x68], xmm0
mov dword [rsp + 0x38], 0
movsd xmm0, qword [rsp + 0x68]
call fcn.1802839f0
test eax, eax
je 0x1802861c9
lea rax, [0x18039b72c]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x40], 3
jmp 0x180286f72
movsd xmm0, qword [rsp + 0x68]
comisd xmm0, xmmword [0x18032fc58]
jbe 0x1802863f4
movsd xmm0, qword [0x18032fc90]
movsd qword [rsp + 0x88], xmm0
movsd xmm0, qword [0x18032fd70]
mulsd xmm0, qword [rsp + 0x88]
movsd xmm1, qword [rsp + 0x68]
comisd xmm1, xmm0
jb 0x18028623c
cmp dword [rsp + 0x38], 0x15e
jg 0x18028623c
movsd xmm0, qword [rsp + 0x88]
mulsd xmm0, qword [0x18032fd70]
movsd qword [rsp + 0x88], xmm0
mov eax, dword [rsp + 0x38]
add eax, 0x64
mov dword [rsp + 0x38], eax
jmp 0x1802861ee
movsd xmm0, qword [0x18032fd60]
mulsd xmm0, qword [rsp + 0x88]
movsd xmm1, qword [rsp + 0x68]
comisd xmm1, xmm0
jb 0x18028628a
cmp dword [rsp + 0x38], 0x15e
jg 0x18028628a
movsd xmm0, qword [rsp + 0x88]
mulsd xmm0, qword [0x18032fd60]
movsd qword [rsp + 0x88], xmm0
mov eax, dword [rsp + 0x38]
add eax, 0x40
mov dword [rsp + 0x38], eax
jmp 0x18028623c
movsd xmm0, qword [0x18032fd18]
mulsd xmm0, qword [rsp + 0x88]
movsd xmm1, qword [rsp + 0x68]
comisd xmm1, xmm0
jb 0x1802862d8
cmp dword [rsp + 0x38], 0x15e
jg 0x1802862d8
movsd xmm0, qword [rsp + 0x88]
mulsd xmm0, qword [0x18032fd18]
movsd qword [rsp + 0x88], xmm0
mov eax, dword [rsp + 0x38]
add eax, 8
mov dword [rsp + 0x38], eax
jmp 0x18028628a
movsd xmm0, qword [0x18032fca0]
mulsd xmm0, qword [rsp + 0x88]
movsd xmm1, qword [rsp + 0x68]
comisd xmm1, xmm0
jb 0x180286325
cmp dword [rsp + 0x38], 0x15e
jg 0x180286325
movsd xmm0, qword [rsp + 0x88]
mulsd xmm0, qword [0x18032fca0]
movsd qword [rsp + 0x88], xmm0
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
jmp 0x1802862d8
movsd xmm0, qword [rsp + 0x68]
divsd xmm0, qword [rsp + 0x88]
movsd qword [rsp + 0x68], xmm0
movsd xmm0, qword [0x18032fc70]
comisd xmm0, xmmword [rsp + 0x68]
jbe 0x18028636b
movsd xmm0, qword [rsp + 0x68]
mulsd xmm0, qword [0x18032fd18]
movsd qword [rsp + 0x68], xmm0
mov eax, dword [rsp + 0x38]
sub eax, 8
mov dword [rsp + 0x38], eax
jmp 0x18028633a
movsd xmm0, qword [0x18032fc90]
comisd xmm0, xmmword [rsp + 0x68]
jbe 0x18028639b
movsd xmm0, qword [rsp + 0x68]
mulsd xmm0, qword [0x18032fca0]
movsd qword [rsp + 0x68], xmm0
mov eax, dword [rsp + 0x38]
dec eax
mov dword [rsp + 0x38], eax
jmp 0x18028636b
cmp dword [rsp + 0x38], 0x15e
jle 0x1802863f4
movsx eax, byte [rsp + 0x20]
cmp eax, 0x2d
jne 0x1802863bd
lea rax, str._Inf
mov qword [rsp + 0x28], rax
jmp 0x1802863e1
movsx eax, byte [rsp + 0x20]
cmp eax, 0x2b
jne 0x1802863d5
lea rax, str.Inf
mov qword [rsp + 0x28], rax
jmp 0x1802863e1
lea rax, [0x18039b814]
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call fcn.180283998
mov dword [rsp + 0x40], eax
jmp 0x180286f72
lea rax, [rsp + 0x170]
mov qword [rsp + 0x28], rax
movzx eax, byte [rsp + 0x21]
cmp eax, 2
je 0x18028644e
movsd xmm0, qword [rsp + 0x68]
addsd xmm0, qword [rsp + 0x110]
movsd qword [rsp + 0x68], xmm0
movsd xmm0, qword [rsp + 0x68]
comisd xmm0, xmmword [0x18032fca0]
jb 0x18028644e
movsd xmm0, qword [rsp + 0x68]
mulsd xmm0, qword [0x18032fc80]
movsd qword [rsp + 0x68], xmm0
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
movzx eax, byte [rsp + 0x21]
cmp eax, 4
jne 0x1802864b3
movzx eax, byte [rsp + 0x3f]
test eax, eax
jne 0x18028646e
mov dword [rsp + 0xf0], 1
jmp 0x180286479
mov dword [rsp + 0xf0], 0
mov al, byte [rsp + 0xf0]
mov byte [rsp + 0x72], al
cmp dword [rsp + 0x38], 0xfffffffc
jl 0x180286495
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x38], eax
jle 0x18028649c
mov byte [rsp + 0x21], 3
jmp 0x1802864b1
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov byte [rsp + 0x21], 2
jmp 0x1802864bb
mov al, byte [rsp + 0x3d]
mov byte [rsp + 0x72], al
movzx eax, byte [rsp + 0x21]
cmp eax, 3
jne 0x1802864cf
mov dword [rsp + 0x60], 0
jmp 0x1802864d7
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
jle 0x1802864eb
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xf8], eax
jmp 0x1802864f6
mov dword [rsp + 0xf8], 0
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0xf8]
add ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x48]
cmp eax, 0x37
jle 0x180286579
cmp dword [rsp + 0x60], 0
jle 0x180286522
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0xd4], eax
jmp 0x18028652d
mov dword [rsp + 0xd4], 0
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0xd4]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x48]
lea eax, [rax + rcx + 0xf]
mov ecx, eax
call fcn.180287c68
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x180286579
mov rax, qword [rsp + 0x1d0]
mov byte [rax + 0x25], 1
jmp 0x180287016
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xb8], rax
movzx eax, byte [rsp + 0x3d]
imul eax, eax, 0xa
add eax, 0x10
mov dword [rsp + 0xe0], eax
cmp dword [rsp + 0x30], 0
jle 0x1802865ac
mov dword [rsp + 0xd8], 1
jmp 0x1802865b7
mov dword [rsp + 0xd8], 0
movzx eax, byte [rsp + 0x3f]
mov ecx, dword [rsp + 0xd8]
or ecx, eax
mov eax, ecx
movzx ecx, byte [rsp + 0x3d]
or eax, ecx
mov byte [rsp + 0x71], al
movsx eax, byte [rsp + 0x20]
test eax, eax
je 0x1802865f3
mov rax, qword [rsp + 0x28]
mov cl, byte [rsp + 0x20]
mov byte [rax], cl
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
cmp dword [rsp + 0x60], 0
jge 0x180286611
mov rax, qword [rsp + 0x28]
mov byte [rax], 0x30
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
jmp 0x18028664c
jmp 0x18028661d
mov eax, dword [rsp + 0x60]
dec eax
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
jl 0x18028664c
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x68]
call fcn.180287088
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
jmp 0x180286613
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18028666a
mov rax, qword [rsp + 0x28]
mov byte [rax], 0x2e
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
jmp 0x18028668a
mov eax, dword [rsp + 0x30]
dec eax
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
jge 0x1802866a8
mov rax, qword [rsp + 0x28]
mov byte [rax], 0x30
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
jmp 0x180286676
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x140], eax
mov eax, dword [rsp + 0x30]
dec eax
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x140], 0
jle 0x1802866ef
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x68]
call fcn.180287088
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
jmp 0x1802866a8
movzx eax, byte [rsp + 0x72]
test eax, eax
je 0x18028677f
movzx eax, byte [rsp + 0x71]
test eax, eax
je 0x18028677f
mov eax, 1
imul rax, rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x28]
movsx eax, byte [rcx + rax]
cmp eax, 0x30
jne 0x180286733
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov byte [rax], 0
jmp 0x180286705
mov eax, 1
imul rax, rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x28]
movsx eax, byte [rcx + rax]
cmp eax, 0x2e
jne 0x18028677f
movzx eax, byte [rsp + 0x3d]
test eax, eax
je 0x18028676a
mov rax, qword [rsp + 0x28]
mov byte [rax], 0x30
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
jmp 0x18028677f
mov rax, qword [rsp + 0x28]
dec rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov byte [rax], 0
movzx eax, byte [rsp + 0x21]
cmp eax, 3
jne 0x180286878
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 4]
lea rcx, str.0123456789ABCDEF0123456789abcdef
mov rdx, qword [rsp + 0x28]
mov al, byte [rcx + rax]
mov byte [rdx], al
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
cmp dword [rsp + 0x38], 0
jge 0x1802867df
mov rax, qword [rsp + 0x28]
mov byte [rax], 0x2d
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x38]
neg eax
mov dword [rsp + 0x38], eax
jmp 0x1802867f4
mov rax, qword [rsp + 0x28]
mov byte [rax], 0x2b
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
cmp dword [rsp + 0x38], 0x64
jl 0x180286830
mov eax, dword [rsp + 0x38]
cdq
mov ecx, 0x64
idiv ecx
add eax, 0x30
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x38]
cdq
mov ecx, 0x64
idiv ecx
mov eax, edx
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x38]
cdq
mov ecx, 0xa
idiv ecx
add eax, 0x30
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x38]
cdq
mov ecx, 0xa
idiv ecx
mov eax, edx
add eax, 0x30
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov byte [rax], 0
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x28]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x28], rax
movzx eax, byte [rsp + 0x4f]
test eax, eax
je 0x18028699f
movzx eax, byte [rsp + 0x44]
test eax, eax
jne 0x18028699f
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x40], eax
jge 0x18028699f
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x78], eax
jmp 0x1802868f3
mov eax, dword [rsp + 0x78]
dec eax
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x98]
cmp dword [rsp + 0x78], eax
jl 0x180286929
mov eax, dword [rsp + 0x98]
mov ecx, dword [rsp + 0x78]
sub ecx, eax
mov eax, ecx
cdqe
movsxd rcx, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x28]
mov al, byte [r8 + rax]
mov byte [rdx + rcx], al
jmp 0x1802868e9
movsx eax, byte [rsp + 0x20]
test eax, eax
je 0x18028693f
mov dword [rsp + 0xe8], 1
jmp 0x18028694a
mov dword [rsp + 0xe8], 0
mov eax, dword [rsp + 0xe8]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x130], eax
mov eax, dword [rsp + 0x98]
dec eax
mov dword [rsp + 0x98], eax
cmp dword [rsp + 0x130], 0
je 0x180286997
movsxd rax, dword [rsp + 0x78]
mov rcx, qword [rsp + 0x28]
mov byte [rcx + rax], 0x30
mov eax, dword [rsp + 0x78]
inc eax
mov dword [rsp + 0x78], eax
jmp 0x180286955
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
jmp 0x180286f72
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax - 8]
mov rcx, qword [rsp + 0x1d0]
mov ecx, dword [rcx + 0x18]
mov dword [rax], ecx
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
jmp 0x180286f72
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0x170], 0x25
lea rax, [rsp + 0x170]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x40], 1
jmp 0x180286f72
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax - 8]
mov dword [rsp + 0x34], eax
mov eax, 1
imul rax, rax, 0
mov cl, byte [rsp + 0x34]
mov byte [rsp + rax + 0x170], cl
cmp dword [rsp + 0x30], 0
jl 0x180286a89
mov dword [rsp + 0x54], 1
jmp 0x180286a63
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x54], eax
jge 0x180286a7f
movsxd rax, dword [rsp + 0x54]
mov cl, byte [rsp + 0x34]
mov byte [rsp + rax + 0x170], cl
jmp 0x180286a59
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x40], eax
jmp 0x180286a91
mov dword [rsp + 0x40], 1
lea rax, [rsp + 0x170]
mov qword [rsp + 0x28], rax
jmp 0x180286f72
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax - 8]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x180286ade
lea rax, [0x1803bad64]
mov qword [rsp + 0x28], rax
jmp 0x180286af5
movzx eax, byte [rsp + 0x21]
cmp eax, 7
jne 0x180286af5
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xb0], rax
cmp dword [rsp + 0x30], 0
jl 0x180286b30
mov dword [rsp + 0x40], 0
jmp 0x180286b10
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x40], eax
jge 0x180286b2e
movsxd rax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
movsx eax, byte [rcx + rax]
test eax, eax
je 0x180286b2e
jmp 0x180286b06
jmp 0x180286b3e
mov rcx, qword [rsp + 0x28]
call fcn.180283998
mov dword [rsp + 0x40], eax
jmp 0x180286f72
movzx eax, byte [rsp + 0x21]
cmp eax, 0xf
jne 0x180286b5a
mov dword [rsp + 0x100], 0x22
jmp 0x180286b65
mov dword [rsp + 0x100], 0x27
mov al, byte [rsp + 0x100]
mov byte [rsp + 0x4d], al
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax - 8]
mov qword [rsp + 0x118], rax
cmp qword [rsp + 0x118], 0
jne 0x180286bb0
mov dword [rsp + 0xdc], 1
jmp 0x180286bbb
mov dword [rsp + 0xdc], 0
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0x108], eax
cmp dword [rsp + 0x108], 0
je 0x180286c0d
movzx eax, byte [rsp + 0x21]
cmp eax, 0xb
jne 0x180286bee
lea rax, [0x18039b8e8]
mov qword [rsp + 0x148], rax
jmp 0x180286bfd
lea rax, str._NULL_
mov qword [rsp + 0x148], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x118], rax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0x7c], 0
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x74], eax
jmp 0x180286c44
mov eax, dword [rsp + 0x74]
inc eax
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x9c]
dec eax
mov dword [rsp + 0x9c], eax
cmp dword [rsp + 0x9c], 0
je 0x180286c85
movsxd rax, dword [rsp + 0x74]
mov rcx, qword [rsp + 0x118]
mov al, byte [rcx + rax]
mov byte [rsp + 0x3c], al
movsx eax, byte [rsp + 0x3c]
test eax, eax
je 0x180286c85
movsx eax, byte [rsp + 0x3c]
movsx ecx, byte [rsp + 0x4d]
cmp eax, ecx
jne 0x180286c83
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
jmp 0x180286c2a
cmp dword [rsp + 0x108], 0
jne 0x180286ca6
movzx eax, byte [rsp + 0x21]
cmp eax, 0xb
jne 0x180286ca6
mov dword [rsp + 0xe4], 1
jmp 0x180286cb1
mov dword [rsp + 0xe4], 0
mov eax, dword [rsp + 0xe4]
mov dword [rsp + 0xc4], eax
mov eax, dword [rsp + 0x74]
mov ecx, dword [rsp + 0x7c]
lea eax, [rax + rcx + 1]
mov ecx, dword [rsp + 0xc4]
lea eax, [rax + rcx*2]
mov dword [rsp + 0x7c], eax
cmp dword [rsp + 0x7c], 0x46
jle 0x180286d19
mov ecx, dword [rsp + 0x7c]
call fcn.180287c68
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x180286d17
mov rax, qword [rsp + 0x1d0]
mov byte [rax + 0x25], 1
jmp 0x180287016
jmp 0x180286d26
lea rax, [rsp + 0x170]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x5c], 0
cmp dword [rsp + 0xc4], 0
je 0x180286d53
movsxd rax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x28]
mov dl, byte [rsp + 0x4d]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0x5c]
inc eax
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0x74], 0
jmp 0x180286d72
mov eax, dword [rsp + 0x74]
inc eax
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x9c]
cmp dword [rsp + 0x74], eax
jge 0x180286dd9
movsxd rax, dword [rsp + 0x74]
mov rcx, qword [rsp + 0x118]
mov al, byte [rcx + rax]
mov byte [rsp + 0x3c], al
movsxd rax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x28]
mov dl, byte [rsp + 0x3c]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0x5c]
inc eax
mov dword [rsp + 0x5c], eax
movsx eax, byte [rsp + 0x3c]
movsx ecx, byte [rsp + 0x4d]
cmp eax, ecx
jne 0x180286dd7
movsxd rax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x28]
mov dl, byte [rsp + 0x3c]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0x5c]
inc eax
mov dword [rsp + 0x5c], eax
jmp 0x180286d68
cmp dword [rsp + 0xc4], 0
je 0x180286dfe
movsxd rax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x28]
mov dl, byte [rsp + 0x4d]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0x5c]
inc eax
mov dword [rsp + 0x5c], eax
movsxd rax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x28]
mov byte [rcx + rax], 0
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x40], eax
jmp 0x180286f72
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax - 8]
mov qword [rsp + 0x138], rax
cmp qword [rsp + 0x138], 0
je 0x180286e70
mov rax, qword [rsp + 0x138]
mov r8d, dword [rax + 8]
mov rax, qword [rsp + 0x138]
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x1d0]
call fcn.180285380
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
jmp 0x180286f72
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov rax, qword [rax - 8]
mov qword [rsp + 0x160], rax
mov rax, qword [rsp + 0x1e8]
add rax, 8
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax - 8]
mov dword [rsp + 0x144], eax
movsxd rax, dword [rsp + 0x144]
imul rax, rax, 0x70
mov rcx, qword [rsp + 0x160]
lea rax, [rcx + rax + 8]
mov qword [rsp + 0x120], rax
mov rax, qword [rsp + 0x120]
cmp qword [rax + 8], 0
je 0x180286f3c
mov r8d, 0xffffffff
mov rax, qword [rsp + 0x120]
mov rdx, qword [rax + 8]
mov rcx, qword [rsp + 0x1d0]
call fcn.180285380
mov r8d, 1
lea rdx, [0x18039b834]
mov rcx, qword [rsp + 0x1d0]
call fcn.180285380
mov r8d, 0xffffffff
mov rax, qword [rsp + 0x120]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rsp + 0x1d0]
call fcn.180285380
mov dword [rsp + 0x48], 0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
jmp 0x180286f72
jmp 0x180287016
movzx eax, byte [rsp + 0x44]
test eax, eax
jne 0x180286fac
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0xf4], eax
cmp dword [rsp + 0xf4], 0
jle 0x180286fac
mov edx, dword [rsp + 0xf4]
mov rcx, qword [rsp + 0x1d0]
call fcn.180287024
cmp dword [rsp + 0x40], 0
jle 0x180286fca
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x1d0]
call fcn.180285380
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x180287004
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0xec], eax
cmp dword [rsp + 0xec], 0
jle 0x180287004
mov edx, dword [rsp + 0xec]
mov rcx, qword [rsp + 0x1d0]
call fcn.180287024
mov rcx, qword [rsp + 0xb0]
call fcn.1802878ec
jmp 0x1802855e2
add rsp, 0x1c8
ret