Function at 0x1800873a0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x180
mov rax, qword [0x18025cbc0]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov rsi, qword [rcx + 0x30]
xor r15d, r15d
mov r12, 0xffffffffffffffff
mov qword [rsp + 0x48], rcx
mov r14d, edx
mov qword [rsp + 0x40], r15
mov rdi, rcx
mov dword [rsp + 0x20], r15d
movzx eax, byte [rsi]
lea rdx, [0x180000000]
add eax, 0xffffffdc
mov qword [rsp + 0x28], rsi
mov ebp, r12d
mov r13d, 0x7fffffff
cmp eax, 0x59
ja case.0x18008783c.52
cdqe
movzx eax, byte [rdx + rax + 0x88340]
mov ecx, dword [rdx + rax*4 + 0x88318]
add rcx, rdx
jmp rcx
mov edx, 5
mov rcx, rdi
inc rsi
call fcn.180086680
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
mov edx, 6
mov rcx, rdi
inc rsi
call fcn.180086680
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
mov r13d, dword [rdi + 0x58]
inc rsi
mov ebp, dword [rdi + 8]
mov rcx, rdi
mov dword [rsp + 0x20], r13d
test r14d, r14d
je 0x1800874a9
mov edx, 0x1b
call fcn.180086680
mov edx, r15d
mov rcx, rdi
cmp dword [rdi + 0x54], edx
setne dl
add edx, 3
call fcn.180086680
mov edx, 0x1b
mov rcx, rdi
call fcn.180086680
mov r13d, 0x7fffffff
jmp 0x180087c50
mov edx, r15d
cmp dword [rdi + 0x54], edx
setne dl
add edx, 3
call fcn.180086680
mov r13d, 0x7fffffff
jmp 0x180087c50
cmp dword [rdi + 0x4c], r15d
je 0x1800874df
lea rdx, str.syntax_error
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
movzx ecx, byte [rsi + 1]
lea rax, [rsi + 1]
cmp ecx, 0x30
jb case.0x18008783c.52
cmp cl, 0x39
ja case.0x18008783c.52
nop dword [rax]
cmp ecx, 0x39
ja 0x180087511
movzx ecx, byte [rax + 1]
inc rax
cmp ecx, 0x30
jae 0x180087500
movzx ecx, byte [rax]
cmp cl, 0x2c
jne 0x180087544
movzx ecx, byte [rax + 1]
lea rdx, [rax + 1]
lea eax, [rcx - 0x30]
cmp eax, 9
ja 0x180087544
cmp ecx, 0x30
jb 0x180087541
nop
cmp ecx, 0x39
ja 0x180087541
movzx ecx, byte [rdx + 1]
inc rdx
cmp ecx, 0x30
jae 0x180087530
movzx ecx, byte [rdx]
cmp cl, 0x7d
jne case.0x18008783c.52
lea rdx, str.nothing_to_repeat
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
cmp byte [rsi + 1], 0x3f
lea rbx, [rsi + 1]
jne 0x180087786
movzx eax, byte [rsi + 2]
cmp al, 0x3a
jne 0x1800875dd
mov r13d, dword [rdi + 0x58]
lea rax, [rsi + 3]
mov ebp, dword [rdi + 8]
mov edx, r14d
mov rcx, rdi
mov qword [rdi + 0x30], rax
mov dword [rsp + 0x20], r13d
call fcn.180087070
test eax, eax
jne 0x18008772d
mov rsi, qword [rdi + 0x30]
cmp byte [rsi], 0x29
je 0x1800875cf
mov r8d, 0x29
lea rdx, str.expecting__c
mov rcx, rdi
call fcn.180087170
test eax, eax
jne 0x18008772d
mov r13d, 0x7fffffff
jmp 0x180087c50
inc rsi
mov r13d, 0x7fffffff
jmp 0x180087c50
cmp al, 0x3d
je 0x1800876c5
cmp al, 0x21
je 0x1800876c5
cmp al, 0x3c
jne 0x1800876b4
movzx eax, byte [rsi + 3]
lea rcx, [rsi + 3]
cmp al, 0x3d
je 0x1800876a1
cmp al, 0x21
je 0x1800876a1
mov r9d, dword [rdi + 0x4c]
lea r8, [rsp + 0x28]
mov qword [rsp + 0x28], rcx
mov edx, 0x80
lea rcx, [rdi + 0xa0]
call fcn.1800871d0
mov rcx, rdi
test eax, eax
je 0x180087644
lea rdx, str.invalid_group_name
call fcn.180087170
jmp 0x180087730
lea rdx, [rdi + 0xa0]
call fcn.18006b0a0
test eax, eax
jle 0x180087668
lea rdx, str.duplicate_group_name
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
mov r8, r12
nop dword [rax + rax]
inc r8
cmp byte [rdi + r8 + 0xa0], r15b
jne 0x180087670
inc r8
lea rcx, [rdi + 0x70]
lea rdx, [rdi + 0xa0]
call fcn.1800685b0
mov rbx, qword [rsp + 0x28]
mov dword [rdi + 0x60], 1
jmp 0x180087791
cmp al, 0x21
mov edx, r15d
mov ebx, 1
sete dl
add rsi, 4
jmp 0x1800876d4
lea rdx, str.invalid_group
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
cmp al, 0x21
mov edx, r15d
mov ebx, r15d
sete dl
add rsi, 3
cmp dword [rdi + 0x4c], r15d
jne 0x1800876e8
test ebx, ebx
jne 0x1800876e8
mov eax, dword [rdi + 0x58]
mov ebp, dword [rdi + 8]
mov dword [rsp + 0x20], eax
add edx, 0x17
xor r8d, r8d
mov rcx, rdi
call fcn.180086750
mov edx, ebx
movsxd r14, eax
mov rcx, rdi
mov qword [rdi + 0x30], rsi
call fcn.180087070
test eax, eax
jne 0x18008772d
mov rsi, qword [rdi + 0x30]
cmp byte [rsi], 0x29
je 0x18008775b
mov r8d, 0x29
lea rdx, str.expecting__c
mov rcx, rdi
call fcn.180087170
test eax, eax
je 0x18008775e
mov eax, r12d
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.180151320
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
inc rsi
mov edx, 0xa
mov rcx, rdi
call fcn.180086680
cmp dword [rdi + 0x18], r15d
jne 0x18008772d
mov edx, dword [rdi + 8]
mov rax, qword [rdi]
sub edx, r14d
sub edx, 4
mov dword [r14 + rax], edx
jmp 0x180087c50
lea rcx, [rdi + 0x70]
xor edx, edx
call fcn.180068690
mov r13d, dword [rdi + 0x58]
mov rcx, rdi
mov dword [rsp + 0x20], r13d
cmp r13d, 0xff
jb 0x1800877b7
lea rdx, str.too_many_captures
call fcn.180087170
jmp 0x180087730
mov ebp, dword [rdi + 8]
lea eax, [r13 + 1]
lea edx, [r14 + 0xb]
mov dword [rdi + 0x58], eax
mov r8d, r13d
call fcn.1800867e0
mov edx, r14d
mov qword [rdi + 0x30], rbx
mov rcx, rdi
call fcn.180087070
test eax, eax
jne 0x18008772d
mov rsi, qword [rdi + 0x30]
mov edx, 0xc
sub edx, r14d
mov r8d, r13d
mov rcx, rdi
call fcn.1800867e0
cmp byte [rsi], 0x29
jne 0x1800875a7
inc rsi
mov r13d, 0x7fffffff
jmp 0x180087c50
movzx r8d, byte [rsi + 1]
lea rbp, [rsi + 1]
lea eax, [r8 - 0x30]
cmp eax, 0x3b
ja case.0x18008783c.52
cdqe
movzx eax, byte [rdx + rax + 0x883b0]
mov ecx, dword [rdx + rax*4 + 0x8839c]
add rcx, rdx
jmp rcx
cmp r8b, 0x62
mov rcx, rdi
setne r15b
lea edx, [r15 + 0x11]
call fcn.180086680
add rsi, 2
mov qword [rdi + 0x30], rsi
xor eax, eax
jmp 0x180087730
cmp byte [rsi + 2], 0x3c
mov r9d, dword [rdi + 0x4c]
je 0x1800878ac
test r9d, r9d
jne 0x180087898
cmp dword [rdi + 0x60], r15d
jge 0x180087892
cmp dword [rdi + 0x5c], r15d
jge 0x18008788e
xor r8d, r8d
lea rdx, [rdi + 0x60]
mov rcx, rdi
call fcn.180086b10
mov dword [rdi + 0x5c], eax
cmp dword [rdi + 0x60], r15d
je case.0x18008783c.52
lea rdx, str.expecting_group_name
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
lea rax, [rsi + 3]
mov edx, 0x80
lea r8, [rsp + 0x30]
mov qword [rsp + 0x30], rax
lea rcx, [rdi + 0xa0]
call fcn.1800871d0
test eax, eax
je 0x180087911
cmp dword [rdi + 0x4c], r15d
jne 0x1800878fd
cmp dword [rdi + 0x60], r15d
jge 0x1800878f7
cmp dword [rdi + 0x5c], r15d
jge 0x1800878f3
xor r8d, r8d
lea rdx, [rdi + 0x60]
mov rcx, rdi
call fcn.180086b10
mov dword [rdi + 0x5c], eax
cmp dword [rdi + 0x60], r15d
je case.0x18008783c.52
lea rdx, str.invalid_group_name
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
lea rdx, [rdi + 0xa0]
mov rcx, rdi
call fcn.18006b0a0
mov ebx, eax
test eax, eax
jns 0x180087982
lea r8, [rdi + 0xa0]
mov rcx, rdi
lea rdx, [rsp + 0x38]
call fcn.180086b10
mov ebx, eax
test eax, eax
jns 0x180087982
cmp dword [rdi + 0x4c], r15d
jne 0x18008796e
cmp dword [rdi + 0x60], r15d
jge 0x180087968
cmp dword [rdi + 0x5c], r15d
jge 0x180087964
xor r8d, r8d
lea rdx, [rdi + 0x60]
mov rcx, rdi
call fcn.180086b10
mov dword [rdi + 0x5c], eax
cmp dword [rdi + 0x60], r15d
je case.0x18008783c.52
lea rdx, str.group_name_not_defined
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
mov rsi, qword [rsp + 0x30]
jmp 0x180087a4f
add rsi, 2
mov ebx, r15d
cmp dword [rdi + 0x4c], ebx
je 0x1800879b9
movzx eax, byte [rsi]
sub al, 0x30
cmp al, 9
ja 0x180087b84
lea rdx, str.invalid_decimal_escape_in_regular_expression
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
movzx eax, byte [rsi]
cmp al, 0x30
jb 0x180087b84
cmp al, 0x37
ja 0x180087b84
lea rcx, [rsi + 1]
lea ebx, [rax - 0x30]
mov rsi, rcx
movzx eax, byte [rcx]
cmp al, 0x30
jb 0x180087b84
cmp al, 0x37
ja 0x180087b84
add ebx, 0xfffffffa
lea rsi, [rcx + 1]
lea ebx, [rax + rbx*8]
jmp 0x180087b84
mov rbx, r15
mov rsi, rbp
cmp r8d, 0x30
jb 0x180087a29
cmp r8d, 0x39
ja 0x180087a29
lea rbx, [rbx + rbx*4]
lea rbx, [rbx - 0x18]
lea rbx, [r8 + rbx*2]
cmp rbx, r13
jae 0x180087a82
movzx r8d, byte [rsi + 1]
inc rsi
cmp r8d, 0x30
jae 0x180087a04
test ebx, ebx
js 0x180087a82
cmp ebx, dword [rdi + 0x58]
jl 0x180087a4f
mov eax, dword [rdi + 0x5c]
test eax, eax
jns 0x180087a4b
lea rdx, [rdi + 0x60]
xor r8d, r8d
mov rcx, rdi
call fcn.180086b10
mov dword [rdi + 0x5c], eax
cmp ebx, eax
jge 0x180087a82
mov r13d, dword [rdi + 0x58]
mov rdx, rdi
mov eax, 0x13
mov dword [rsp + 0x20], r13d
mov ebp, 8
mov rcx, rdi
mov r8d, ebx
mov ebp, dword [rdx + rbp]
lea edx, [rax + r14]
call fcn.1800867e0
mov r13d, 0x7fffffff
jmp 0x180087c50
cmp dword [rdi + 0x4c], r15d
jne 0x180087aed
movzx eax, byte [rbp]
mov rsi, rbp
cmp al, 0x37
ja 0x180087ae2
mov ebx, r15d
cmp al, 0x33
ja 0x180087aa4
lea rsi, [rbp + 1]
mov rbp, rsi
lea ebx, [rax - 0x30]
movzx eax, byte [rsi]
cmp al, 0x30
jb 0x180087b84
cmp al, 0x37
ja 0x180087b84
add eax, 0xffffffd0
lea rsi, [rbp + 1]
lea ebx, [rax + rbx*8]
movzx eax, byte [rsi]
cmp al, 0x30
jb 0x180087b84
cmp al, 0x37
ja 0x180087b84
add ebx, 0xfffffffa
inc rsi
lea ebx, [rax + rbx*8]
jmp 0x180087b84
mov ebx, eax
lea rsi, [rbp + 1]
jmp 0x180087b84
lea rdx, str.back_reference_out_of_range_in_regular_expression
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
mov r13d, dword [rdi + 0x58]
mov ebp, dword [rdi + 8]
mov dword [rsp + 0x20], r13d
test r14d, r14d
je 0x180087b1f
mov edx, 0x1b
mov rcx, rdi
call fcn.180086680
lea rdx, [rsp + 0x28]
mov rcx, rdi
call fcn.180086cb0
test eax, eax
jne 0x18008772d
test r14d, r14d
je 0x180087b46
mov edx, 0x1b
mov rcx, rdi
call fcn.180086680
mov rsi, qword [rsp + 0x28]
mov r13d, 0x7fffffff
jmp 0x180087c50
cmp dword [rdi + 0x4c], r15d
jne 0x1800874cb
xor r9d, r9d
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.18006dc50
mov ebx, eax
test eax, eax
js 0x18008772d
mov rsi, qword [rsp + 0x28]
mov eax, dword [rdi + 0x58]
mov ebp, dword [rdi + 8]
mov dword [rsp + 0x20], eax
test r14d, r14d
je 0x180087bbb
mov rdx, qword [rdi + 8]
inc rdx
cmp rdx, qword [rdi + 0x10]
jbe 0x180087bac
mov rcx, rdi
call fcn.1800686f0
test eax, eax
jne 0x180087bbb
mov rax, qword [rdi + 8]
mov rcx, qword [rdi]
mov byte [rcx + rax], 0x1b
inc qword [rdi + 8]
cmp ebx, 0x40000000
jb 0x180087bed
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.180086870
mov rdx, qword [rsp + 0x58]
xor r8d, r8d
mov rcx, qword [rsp + 0x60]
mov ebx, eax
call qword [rsp + 0x68]
test ebx, ebx
jne 0x18008772d
jmp 0x180087c23
cmp dword [rdi + 0x50], r15d
je 0x180087bff
mov edx, dword [rdi + 0x4c]
mov ecx, ebx
call fcn.180081ef0
mov ebx, eax
mov r8d, ebx
mov rcx, rdi
cmp ebx, 0xffff
jg 0x180087c19
mov edx, 1
call fcn.1800866c0
jmp 0x180087c23
mov edx, 2
call fcn.180086750
test r14d, r14d
je 0x180087c50
mov rdx, qword [rdi + 8]
inc rdx
cmp rdx, qword [rdi + 0x10]
jbe 0x180087c41
mov rcx, rdi
call fcn.1800686f0
test eax, eax
jne 0x180087c50
mov rcx, qword [rdi + 8]
mov rax, qword [rdi]
mov byte [rcx + rax], 0x1b
inc qword [rdi + 8]
test ebp, ebp
js 0x180088163
movzx ecx, byte [rsi]
sub ecx, 0x2a
je 0x180087d9e
sub ecx, 1
je 0x180087d93
sub ecx, 0x14
je 0x180087d8b
cmp ecx, 0x3c
jne 0x180088163
movzx eax, byte [rsi + 1]
mov rdx, rsi
cmp eax, 0x30
jb 0x180087d6d
cmp al, 0x39
ja 0x180087d6d
inc rsi
mov qword [rsp + 0x30], r15
mov r12, r15
cmp eax, 0x39
ja 0x180087cc7
lea r12, [r12 + r12*4]
lea r12, [r12 - 0x18]
lea r12, [rax + r12*2]
movzx eax, byte [rsi + 1]
cmp r12, r13
cmovae r12, r13
inc rsi
cmp eax, 0x30
jae 0x180087ca2
cmp byte [rsi], 0x2c
mov r14d, r12d
mov qword [rsp + 0x30], r12
mov rbx, rsi
jne 0x180087d24
movzx eax, byte [rsi + 1]
lea rbx, [rsi + 1]
sub al, 0x30
mov rsi, rbx
cmp al, 9
ja 0x180087d21
movzx eax, byte [rbx]
mov r14, r15
cmp eax, 0x30
jb 0x180087d17
cmp eax, 0x39
ja 0x180087d17
lea r14, [r14 + r14*4]
lea r14, [r14 - 0x18]
lea r14, [rax + r14*2]
movzx eax, byte [rsi + 1]
cmp r14, r13
cmovae r14, r13
inc rsi
cmp eax, 0x30
jae 0x180087cf3
cmp r14d, r12d
jl 0x180087d77
mov rbx, rsi
jmp 0x180087d24
mov r14d, r13d
cmp byte [rsi], 0x7d
je 0x180087d3d
cmp dword [rdi + 0x4c], r15d
jne 0x180087d3d
mov rsi, rdx
mov qword [rdi + 0x30], rdx
xor eax, eax
jmp 0x180087730
cmp byte [rbx], 0x7d
je 0x180087d67
mov r8d, 0x7d
lea rdx, str.expecting__c
mov rcx, rdi
call fcn.180087170
test eax, eax
je 0x180087daf
mov r12, 0xffffffffffffffff
jmp 0x18008772d
lea rsi, [rbx + 1]
jmp 0x180087dac
cmp dword [rdi + 0x4c], r15d
je 0x180088163
lea rdx, str.invalid_repetition_count
mov rcx, rdi
call fcn.180087170
jmp 0x180087730
mov r14d, 1
jmp 0x180087da1
mov r12d, 1
mov r14d, r13d
jmp 0x180087da4
mov r14d, r13d
mov r12d, r15d
inc rsi
mov qword [rsp + 0x30], r12
mov rbx, rsi
cmp byte [rsi], 0x3f
jne 0x180087dc2
lea rsi, [rbx + 1]
mov r13d, r15d
xor ebx, ebx
jmp 0x18008802c
mov r13d, 1
mov dword [rsp + 0x28], r13d
test r14d, r14d
jle case.0x180087e55.7
cmp dword [rdi + 0x18], r15d
jne 0x180088303
mov r11d, dword [rdi + 8]
mov ebx, r15d
mov eax, r11d
movsxd r10, ebp
add r10, qword [rdi]
sub eax, ebp
mov dword [rsp + 0x28], r13d
mov r9d, r15d
test eax, eax
jle 0x180087e7a
mov dword [rsp + 0x28], r13d
nop dword [rax]
nop word [rax + rax]
movsxd r8, r9d
lea rdx, [0x180000000]
movzx ecx, byte [r8 + r10]
movzx edx, byte [rcx + rdx + 0x1696e8]
dec ecx
cmp ecx, 0x15
ja case.0x180087e55.7
movsxd rax, ecx
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x88400]
mov ecx, dword [rcx + rax*4 + 0x883ec]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
movzx eax, word [r8 + r10 + 1]
lea edx, [rdx + rax*4]
jmp case.0x180087e55.1
movzx eax, word [r8 + r10 + 1]
lea edx, [rdx + rax*8]
inc ebx
mov eax, r11d
add r9d, edx
sub eax, ebp
cmp r9d, eax
jl 0x180087e10
test ebx, ebx
jle case.0x180087e55.7
mov edx, 0xa
mov rcx, rdi
call fcn.180086680
mov r8d, 0x11
mov edx, ebp
mov rcx, rdi
call fcn.180068420
test eax, eax
jne 0x180088303
mov rax, qword [rdi]
movsxd rcx, ebp
mov byte [rcx + rax], 0x1c
mov edx, dword [rdi + 8]
mov rax, qword [rdi]
sub edx, ebp
sub edx, 0x11
movsxd rcx, ebp
mov dword [rcx + rax + 1], edx
lea edx, [rbp + 5]
mov rax, qword [rdi]
movsxd rcx, edx
mov dword [rcx + rax], r12d
mov rax, qword [rdi]
mov dword [rcx + rax + 4], r14d
lea eax, [rdx + 8]
movsxd rcx, eax
mov rax, qword [rdi]
mov dword [rcx + rax], ebx
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
cmp dword [rdi + 0x18], r15d
jne 0x180088303
mov eax, dword [rdi + 8]
lea rcx, [rsp + 0x70]
sub eax, ebp
xor edx, edx
mov dword [rsp + 0x38], eax
mov r8d, 0xff
movsxd rax, ebp
mov ebx, 0xfffffffe
add rax, qword [rdi]
mov qword [rsp + 0x40], rax
call sub.VCRUNTIME140.dll_memset
mov r11d, dword [rsp + 0x38]
test r11d, r11d
jle 0x18008801b
mov r13, qword [rsp + 0x40]
lea r8, [0x180000000]
xor edi, edi
xor r12d, r12d
nop
movsxd rdx, r15d
add rdx, r13
movzx ecx, byte [rdx]
movzx r10d, byte [rcx + r8 + 0x1696e8]
dec ecx
cmp ecx, 0x1a
ja case.0x180087f74.8
movsxd rax, ecx
movzx eax, byte [r8 + rax + 0x88438]
mov ecx, dword [r8 + rax*4 + 0x88418]
add rcx, r8
jmp rcx
movzx eax, word [rdx + 1]
lea r10d, [r10 + rax*4]
jmp case.0x180087f74.1
movzx eax, word [rdx + 1]
lea r10d, [r10 + rax*8]
cmp ebx, 0xfffffffe
jne case.0x180087f74.2
mov ebx, 1
jmp case.0x180087f74.2
movzx eax, byte [rdx + 1]
or byte [rsp + rax + 0x70], 1
jmp case.0x180087f74.2
movzx r8d, byte [rdx + 2]
movzx r9d, byte [rdx + 1]
cmp r9d, r8d
jae 0x180087fcd
lea rcx, [rsp + 0x70]
add rcx, r9
sub r8d, r9d
mov eax, r8d
nop dword [rax]
or byte [rcx], 1
lea rcx, [rcx + 1]
sub rax, 1
jne 0x180087fc0
lea r8, [0x180000000]
add r15d, r10d
cmp r15d, r11d
jl 0x180087f40
mov rdi, qword [rsp + 0x48]
test r12d, r12d
mov r12, qword [rsp + 0x30]
mov r13d, dword [rsp + 0x28]
je 0x180088016
xor ecx, ecx
lea rax, [rsp + 0x70]
nop dword [rax + rax]
cmp byte [rax], 3
je 0x1800880be
inc ecx
inc rax
cmp ecx, 0xff
jb 0x180088000
cmp ebx, 0xfffffffe
jne 0x18008801d
xor ebx, ebx
test ebx, ebx
mov ebx, 0
sete bl
mov qword [rsp + 0x40], rbx
mov r15d, dword [rdi + 8]
sub r15d, ebp
test r12d, r12d
jne 0x1800881d5
mov r12d, dword [rsp + 0x20]
cmp r12d, dword [rdi + 0x58]
je 0x180088088
mov r8d, 3
mov edx, ebp
mov rcx, rdi
call fcn.180068420
test eax, eax
jne 0x180088303
mov rax, qword [rdi]
movsxd rcx, ebp
inc ebp
mov byte [rcx + rax], 0xd
mov rax, qword [rdi]
movsxd rcx, ebp
inc ebp
mov byte [rcx + rax], r12b
movzx edx, byte [rdi + 0x58]
mov rax, qword [rdi]
dec dl
movsxd rcx, ebp
inc ebp
mov byte [rcx + rax], dl
test r14d, r14d
jne 0x1800880ca
movsxd rax, ebp
mov qword [rdi + 8], rax
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
movzx eax, byte [rdx + 1]
mov r12d, 1
or byte [rsp + rax + 0x70], 2
jmp case.0x180087f74.2
cmp ebx, 0xfffffffe
cmove ebx, edi
jmp case.0x180087f74.2
mov rbx, 0xffffffffffffffff
jmp 0x18008801d
mov edx, ebp
mov rcx, rdi
cmp r14d, 1
jne 0x180088109
mov r8d, 5
call fcn.180068420
test eax, eax
jne 0x180088303
mov rax, qword [rdi]
add r13b, 8
movsxd rcx, ebp
mov byte [rcx + rax], r13b
mov rax, qword [rdi]
mov dword [rax + rcx + 1], r15d
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
cmp r14d, 0x7fffffff
jne 0x18008816e
lea r8d, [rbx + 5]
call fcn.180068420
test eax, eax
jne 0x180088303
mov rax, qword [rdi]
lea ecx, [rbx + 5]
movsxd rdx, ebp
add r13b, 8
add ecx, r15d
mov byte [rdx + rax], r13b
mov rax, qword [rdi]
mov dword [rax + rdx + 1], ecx
test ebx, ebx
je 0x180088151
mov rax, qword [rdi]
mov byte [rdx + rax + 5], 0x19
mov eax, 0x1a
jmp 0x180088156
mov eax, 7
mov r8d, ebp
mov edx, eax
mov rcx, rdi
call fcn.1800865e0
mov qword [rdi + 0x30], rsi
xor eax, eax
jmp 0x180087730
mov r8d, 0xa
call fcn.180068420
test eax, eax
jne 0x180088303
mov rax, qword [rdi]
lea r8d, [rbp + 5]
movsxd rcx, ebp
add r13b, 8
movsxd rdx, r8d
mov byte [rcx + rax], 0xf
mov rax, qword [rdi]
mov dword [rax + rcx + 1], r14d
lea ecx, [r15 + 5]
mov rax, qword [rdi]
mov byte [rdx + rax], r13b
mov rax, qword [rdi]
mov dword [rdx + rax + 1], ecx
mov edx, 0xe
mov rcx, rdi
call fcn.1800865e0
mov edx, 0x10
mov rcx, rdi
call fcn.180086680
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
cmp r12d, 1
jne 0x18008820a
cmp r14d, 0x7fffffff
jne 0x1800882be
test ebx, ebx
jne 0x18008825d
mov edx, 9
mov r8d, ebp
sub edx, r13d
mov rcx, rdi
call fcn.1800865e0
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
mov r8d, 5
mov edx, ebp
mov rcx, rdi
call fcn.180068420
test eax, eax
jne 0x180088303
mov rax, qword [rdi]
mov edx, 0xe
movsxd rcx, ebp
add ebp, 5
mov r8d, ebp
mov byte [rcx + rax], 0xf
mov rax, qword [rdi]
mov dword [rax + rcx + 1], r12d
mov rcx, rdi
call fcn.1800865e0
mov edx, 0x10
mov rcx, rdi
call fcn.180086680
cmp r14d, 0x7fffffff
jne 0x1800882be
mov r14, qword [rsp + 0x40]
lea edx, [r13 + 8]
mov ebx, dword [rdi + 8]
mov rcx, rdi
lea r8d, [r14 + 5]
add r8d, r15d
call fcn.180086750
test r14d, r14d
je 0x18008828a
mov edx, 0x19
mov rcx, rdi
call fcn.180086680
movsxd r8, r15d
mov rcx, rdi
movsxd rdx, ebp
call fcn.180068620
mov edx, 0x1a
mov eax, 7
test r14d, r14d
mov r8d, ebx
mov rcx, rdi
cmove edx, eax
call fcn.1800865e0
xor eax, eax
mov qword [rdi + 0x30], rsi
jmp 0x180087730
cmp r14d, r12d
jle 0x180088163
sub r14d, r12d
mov edx, 0xf
mov r8d, r14d
mov rcx, rdi
call fcn.180086750
mov ebx, dword [rdi + 8]
lea r8d, [r15 + 5]
lea edx, [r13 + 8]
mov rcx, rdi
call fcn.180086750
movsxd r8, r15d
mov rcx, rdi
movsxd rdx, ebp
call fcn.180068620
mov r8d, ebx
jmp 0x1800881b0
lea rdx, str.out_of_memory
mov rcx, rdi
call fcn.180087170
jmp 0x180087730