Function at 0x180003850
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x238]
sub rsp, 0x2f8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
mov rax, qword [0x18026b028]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
movsd xmm6, qword [0x18024de20]
mov r11, r8
movsd xmm8, qword [0x18024d8a0]
xor r14d, r14d
movsd xmm7, qword [0x18024d8b0]
mov rdi, r9
mov qword [rsp + 0x50], r8
mov r9, rdx
mov r8, qword [rbp + 0x260]
mov r12, rcx
mov qword [rsp + 0x58], r8
mov r15d, r14d
mov qword [rbp - 0x80], rdx
mov rsi, r11
mov qword [rbp - 0x78], rcx
mov dword [rsp + 0x38], r14d
lea rbx, [r8]
nop word [rax + rax]
test dil, 3
jne 0x18000394a
mov edx, dword [rdi]
mov ecx, edx
mov eax, edx
not ecx
xor eax, 0x25252525
and ecx, 0x80808080
sub eax, 0x1010101
test ecx, eax
jne 0x18000394a
lea eax, [rdx - 0x1010101]
test ecx, eax
jne 0x1800039a8
test r12, r12
je 0x180003924
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp eax, 4
jl 0x18000394a
add rdi, 4
mov dword [rsi], edx
add rsi, 4
mov edx, dword [rdi]
mov ecx, edx
mov eax, edx
not ecx
xor eax, 0x25252525
and ecx, 0x80808080
sub eax, 0x1010101
test ecx, eax
je 0x180003902
movzx eax, byte [rdi]
cmp al, 0x25
je 0x1800039ad
test al, al
je 0x18000529d
test r12, r12
je 0x180003998
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180003998
add r15d, r8d
mov rdx, r9
mov rcx, r11
mov dword [rsp + 0x38], r15d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
mov r9, qword [rbp - 0x80]
movzx eax, byte [rdi]
mov byte [rsi], al
inc rsi
inc rdi
jmp 0x1800038e0
movzx eax, byte [rdi]
jmp 0x180003951
movsx eax, byte [rdi + 1]
inc rdi
sub eax, 0x20
mov dword [rsp + 0x68], r14d
mov dword [rsp + 0x30], r14d
mov r13d, r14d
mov dword [rsp + 0x48], r14d
mov r10d, r14d
mov qword [rsp + 0x60], rdi
mov r15d, 0xffffffff
lea r14, [0x180000000]
cmp eax, 0x3f
ja case.0x180003a06.40
nop word [rax + rax]
cdqe
movzx eax, byte [r14 + rax + 0x5338]
mov ecx, dword [r14 + rax*4 + 0x5314]
add rcx, r14
jmp rcx
or r10d, 1
jmp 0x180003a4e
or r10d, 2
jmp 0x180003a4e
or r10d, 4
jmp 0x180003a4e
or r10d, 8
jmp 0x180003a4e
or r10d, 0x40
jmp 0x180003a4e
bt r10d, 8
jae 0x180003a42
mov ecx, 0x800
mov eax, 0x1000
test ecx, r10d
cmove eax, ecx
or r10d, eax
jmp 0x180003a4e
bts r10d, 8
jmp 0x180003a4e
bts r10d, 0xa
movsx eax, byte [rdi + 1]
inc rdi
sub eax, 0x20
mov dword [rsp + 0x30], r10d
mov qword [rsp + 0x60], rdi
cmp eax, 0x3f
jbe 0x1800039f0
jmp 0x180003a75
or r10d, 0x10
mov dword [rsp + 0x30], r10d
inc rdi
mov qword [rsp + 0x60], rdi
movzx eax, byte [rdi]
cmp al, 0x2a
jne 0x180003aa5
mov r8, qword [rsp + 0x58]
mov r13d, dword [rbx]
add r8, 8
movzx eax, byte [rdi + 1]
inc rdi
mov qword [rsp + 0x58], r8
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x60], rdi
jmp 0x180003adf
cmp al, 0x30
jl 0x180003ada
nop dword [rax]
movzx edx, al
cmp dl, 0x39
ja 0x180003ad0
movzx eax, byte [rdi + 1]
lea r13d, [r13 + r13*4]
inc rdi
lea r13d, [r13 - 0x18]
lea r13d, [rdx + r13*2]
cmp al, 0x30
jge 0x180003ab0
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x60], rdi
mov r8, qword [rsp + 0x58]
mov rcx, r8
cmp al, 0x2e
jne 0x180003b0e
movzx eax, byte [rdi + 1]
inc rdi
mov qword [rsp + 0x60], rdi
cmp al, 0x2a
jne 0x180003b3b
movzx eax, byte [rdi + 1]
add r8, 8
mov r15d, dword [rcx]
inc rdi
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x60], rdi
xor r13d, r13d
movsx eax, al
mov r9, r8
add eax, 0xffffffb7
cmp eax, 0x31
ja case.0x180003b39.77
cdqe
movzx eax, byte [r14 + rax + 0x538c]
mov ecx, dword [r14 + rax*4 + 0x5378]
add rcx, r14
jmp rcx
xor r13d, r13d
mov r15d, r13d
cmp al, 0x30
jl 0x180003b11
movzx edx, al
cmp dl, 0x39
ja 0x180003b64
movzx eax, byte [rdi + 1]
lea r15d, [r15 + r15*4]
inc rdi
lea r15d, [r15 - 0x18]
lea r15d, [rdx + r15*2]
cmp al, 0x30
jge 0x180003b45
mov qword [rsp + 0x60], rdi
jmp 0x180003b11
inc rdi
bts r10d, 9
mov dword [rsp + 0x30], r10d
mov qword [rsp + 0x60], rdi
cmp byte [rdi], 0x68
jne case.0x180003b39.77
inc rdi
mov qword [rsp + 0x60], rdi
jmp case.0x180003b39.77
inc rdi
mov qword [rsp + 0x60], rdi
cmp byte [rdi], 0x6c
jne case.0x180003b39.77
or r10d, 0x20
inc rdi
mov qword [rsp + 0x60], rdi
jmp 0x180003be9
movzx eax, byte [rdi + 1]
lea rcx, [rdi + 1]
cmp al, 0x36
jne 0x180003bc8
cmp byte [rdi + 2], 0x34
jne 0x180003bc8
or r10d, 0x20
add rdi, 3
mov qword [rsp + 0x60], rdi
jmp 0x180003be9
cmp al, 0x33
jne 0x180003bdd
cmp byte [rdi + 2], 0x32
jne 0x180003bdd
add rdi, 3
mov qword [rsp + 0x60], rdi
jmp case.0x180003b39.77
or r10d, 0x20
mov qword [rsp + 0x60], rcx
mov rdi, rcx
mov dword [rsp + 0x30], r10d
movsx edx, byte [rdi]
lea eax, [rdx - 0x41]
cmp eax, 0x37
ja case.0x180003c13.77
cdqe
movzx eax, byte [r14 + rax + 0x53f4]
mov ecx, dword [r14 + rax*4 + 0x53c0]
add rcx, r14
jmp rcx
mov rax, qword [r9]
lea r14, [0x1801d7a60]
add r8, 8
mov edx, 0xffffffff
test rax, rax
mov qword [rsp + 0x58], r8
cmovne r14, rax
test r15d, r15d
mov r9, r14
cmovns edx, r15d
test r14b, 3
je 0x180003c59
test edx, edx
je 0x180003c93
cmp byte [r9], 0
je 0x180003c93
inc r9
dec edx
test r9b, 3
jne 0x180003c44
cmp edx, 4
jb 0x180003c81
nop
mov eax, dword [r9]
lea ecx, [rax - 0x1010101]
not eax
and ecx, eax
test ecx, 0x80808080
jne 0x180003c85
add r9, 4
add edx, 0xfffffffc
cmp edx, 4
jae 0x180003c60
test edx, edx
je 0x180003c93
cmp byte [r9], 0
je 0x180003c93
inc r9
add edx, 0xffffffff
jne 0x180003c85
sub r9d, r14d
xor r13b, r13b
xor r10d, r10d
mov qword [rsp + 0x70], r9
mov r15d, r10d
mov dword [rsp + 0x44], r10d
mov edi, r10d
mov dword [rsp + 0x3c], r10d
mov dword [rsp + 0x40], r9d
mov byte [rbp - 0x60], r13b
mov byte [rbp - 0x58], r13b
jmp 0x180004b3f
movzx eax, byte [r9]
add r8, 8
mov qword [rsp + 0x58], r8
mov byte [rbp + 0x1af], al
jmp 0x180004b56
mov rax, qword [r9]
add r8, 8
mov r15d, dword [rsp + 0x38]
mov ecx, esi
mov r9, qword [rbp - 0x80]
sub ecx, r11d
add ecx, r15d
mov qword [rsp + 0x58], r8
inc rdi
mov dword [rax], ecx
xor r14d, r14d
jmp 0x1800038d7
movsd xmm0, qword [r9]
lea rax, str.0123456789ABCDEFXP
movsd qword [rbp - 0x70], xmm0
lea r8, str.0123456789abcdefxp
cmp dl, 0x41
mov edi, 6
movabs rcx, 0xfffffffffffff
cmove r8, rax
movzx eax, byte [rbp - 0x70]
add qword [rsp + 0x58], 8
mov byte [rbp - 0x68], al
cmp r15d, 0xffffffff
movzx eax, byte [rbp - 0x6f]
mov byte [rbp - 0x67], al
cmove r15d, edi
movzx eax, byte [rbp - 0x6e]
mov byte [rbp - 0x66], al
movzx eax, byte [rbp - 0x6d]
mov byte [rbp - 0x65], al
movzx eax, byte [rbp - 0x6c]
mov byte [rbp - 0x64], al
movzx eax, byte [rbp - 0x6b]
mov byte [rbp - 0x63], al
movzx eax, byte [rbp - 0x6a]
mov byte [rbp - 0x62], al
movzx eax, byte [rbp - 0x69]
mov byte [rbp - 0x61], al
mov rax, qword [rbp - 0x68]
mov r11, rax
mov rdx, rax
sar r11, 0x34
and rdx, rcx
and r11d, 0x7ff
shr rax, 0x3f
sub r11d, 0x3ff
test al, al
je 0x180003daa
bts r10d, 7
mov dword [rsp + 0x30], r10d
xor r9b, r9b
mov byte [rbp - 0x60], r9b
test r10b, r10b
jns 0x180003dbe
mov word [rbp - 0x60], 0x2d01
jmp 0x180003dd8
test r10b, 4
je 0x180003dcc
mov word [rbp - 0x60], 0x2001
jmp 0x180003dd8
test r10b, 2
je 0x180003ddb
mov word [rbp - 0x60], 0x2b01
mov r9b, 1
cmp r11d, 0xfffffc01
jne 0x180003df7
mov rax, rdx
neg rax
sbb ecx, ecx
and ecx, 0xfffffc02
mov r11d, ecx
jmp 0x180003e04
movabs rax, 0x10000000000000
or rdx, rax
shl rdx, 8
cmp r15d, 0xf
jge 0x180003e26
lea ecx, [r15*4]
movabs rax, 0x800000000000000
shr rax, cl
add rdx, rax
movsx rax, r9b
lea r9, [rbp - 0xf]
mov byte [rbp + rax - 0x5f], 0x30
movsx rax, byte [rbp - 0x60]
mov byte [rbp + rax - 0x5e], 0x78
mov rax, rdx
movzx r13d, byte [rbp - 0x60]
shr rax, 0x3c
add r13b, 2
shl rdx, 4
mov byte [rbp - 0x60], r13b
movzx eax, byte [rax + r8]
mov byte [rbp - 0x10], al
test r15d, r15d
je 0x180003e6a
mov byte [rbp - 0xf], 0x2e
lea r9, [rbp - 0xe]
test r15d, r15d
lea rbx, [rbp - 0xf]
lea rax, [rbp - 0xe]
mov ecx, r15d
cmovne rbx, rax
cmp r15d, 0xd
jbe 0x180003e99
mov ecx, 0xd
jle 0x180003e99
lea eax, [r15 - 0xd]
xor r10d, r10d
mov dword [rsp + 0x48], eax
mov r15d, r10d
jmp 0x180003ea3
xor r10d, r10d
mov r15d, r10d
test ecx, ecx
je 0x180003ecb
mov r9, rbx
nop word [rax + rax]
mov rax, rdx
shl rdx, 4
shr rax, 0x3c
movzx eax, byte [rax + r8]
mov byte [r9], al
inc r9
add ecx, 0xffffffff
jne 0x180003eb0
movzx eax, byte [r8 + 0x11]
mov byte [rbp - 0x57], al
test r11d, r11d
jns 0x180003ee1
mov byte [rbp - 0x56], 0x2d
neg r11d
jmp 0x180003ee5
mov byte [rbp - 0x56], 0x2b
cmp r11d, 0x3e8
jl 0x180003ef3
mov r8d, edi
jmp 0x180003f10
cmp r11d, 0x64
jl 0x180003f01
mov r8d, 5
jmp 0x180003f10
cmp r11d, 0xa
mov r8d, r10d
setge r8b
add r8d, 3
mov eax, 0x66666667
mov byte [rbp - 0x58], r8b
imul r11d
lea r10, [rbp - 0x58]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
add r10, rax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r11b, cl
add r11b, 0x30
mov byte [r10], r11b
cmp r8d, 3
jbe 0x180003f83
lea r11d, [r8 - 3]
nop
mov r8d, edx
lea r10, [r10 - 1]
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r10], r8b
sub r11, 1
jne 0x180003f50
mov eax, r9d
lea r14, [rbp - 0x10]
sub eax, ebx
mov edi, 0x3000001
mov dword [rsp + 0x44], eax
lea rax, [rbp - 0x50]
sub r9d, eax
sub r9d, 0x40
mov qword [rsp + 0x70], r9
xor r10d, r10d
mov dword [rsp + 0x40], r9d
jmp 0x180004b36
movsd xmm0, qword [r9]
lea rbx, str.0123456789abcdefxp
cmp dl, 0x47
lea rax, str.0123456789ABCDEFXP
cmove rbx, rax
add r8, 8
mov qword [rsp + 0x58], r8
cmp r15d, 0xffffffff
jne 0x180003fe3
mov r15d, 6
jmp 0x180003fef
test r15d, r15d
mov eax, 1
cmove r15d, eax
lea eax, [r15 - 1]
mov dword [rsp + 0x34], r15d
bts eax, 0x1f
lea r9, [rsp + 0x44]
mov dword [rsp + 0x28], eax
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x40]
movsd qword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x78]
call fcn.180005f80
test eax, eax
je 0x18000402a
or dword [rsp + 0x30], 0x80
mov eax, dword [rsp + 0x40]
mov edx, r15d
mov r14, qword [rsp + 0x78]
cmp eax, r15d
cmova eax, r15d
mov dword [rsp + 0x40], eax
mov r9d, eax
mov qword [rsp + 0x70], r9
cmp eax, 1
jbe 0x180004079
nop
test r15d, r15d
je 0x18000406f
lea ecx, [r9 - 1]
cmp byte [rcx + r14], 0x30
jne 0x18000406f
dec r15d
mov dword [rsp + 0x40], ecx
mov r9d, ecx
cmp ecx, 1
ja 0x180004050
mov dword [rsp + 0x34], r15d
mov qword [rsp + 0x70], r9
mov r12d, dword [rsp + 0x44]
cmp r12d, 0xfffffffc
jle 0x1800040e2
cmp r12d, edx
jg 0x1800040e2
test r12d, r12d
jle 0x1800040ae
mov eax, dword [rsp + 0x30]
cmp r12d, r9d
jge 0x1800040a4
mov r10d, r9d
sub r10d, r12d
mov dword [rsp + 0x34], r10d
jmp 0x1800040c4
mov r10d, r13d
mov dword [rsp + 0x34], r13d
jmp 0x1800040c4
cmp r15d, r9d
cmovg r15d, r9d
sub r15d, r12d
mov dword [rsp + 0x34], r15d
mov eax, dword [rsp + 0x30]
mov r10d, r15d
xor r13b, r13b
mov byte [rbp - 0x58], 0
mov byte [rbp - 0x60], r13b
test al, al
jns 0x1800045dd
mov word [rbp - 0x60], 0x2d01
jmp 0x1800045f3
cmp r15d, r9d
jle 0x1800040f0
lea edx, [r9 - 1]
jmp 0x18000418b
test r15d, r15d
je 0x180004187
lea edx, [r15 - 1]
jmp 0x18000418b
movsd xmm0, qword [r9]
lea rax, str.0123456789ABCDEFXP
cmp dl, 0x45
lea rbx, str.0123456789abcdefxp
lea r9, [rsp + 0x44]
cmove rbx, rax
lea rdx, [rsp + 0x40]
add r8, 8
lea rcx, [rsp + 0x78]
mov eax, 6
mov qword [rsp + 0x58], r8
cmp r15d, 0xffffffff
lea r8, [rbp - 0x50]
cmove r15d, eax
mov eax, r15d
bts eax, 0x1f
mov dword [rsp + 0x28], eax
movsd qword [rsp + 0x20], xmm0
call fcn.180005f80
mov r9d, dword [rsp + 0x40]
mov edx, r15d
mov r10d, dword [rsp + 0x30]
mov r12d, dword [rsp + 0x44]
mov r14, qword [rsp + 0x78]
mov qword [rsp + 0x70], r9
test eax, eax
je 0x180004190
bts r10d, 7
mov dword [rsp + 0x30], r10d
jmp 0x180004190
mov edx, dword [rsp + 0x34]
mov r10d, dword [rsp + 0x30]
xor r13b, r13b
mov byte [rbp - 0x58], 0
mov byte [rbp - 0x60], r13b
test r10b, r10b
jns 0x1800041a8
mov word [rbp - 0x60], 0x2d01
jmp 0x1800041c2
test r10b, 4
je 0x1800041b6
mov word [rbp - 0x60], 0x2001
jmp 0x1800041c2
test r10b, 2
je 0x1800041c5
mov word [rbp - 0x60], 0x2b01
mov r13b, 1
cmp r12d, 0x7000
jne 0x1800041e5
mov r12, qword [rbp - 0x78]
xor r10d, r10d
mov edi, r10d
mov dword [rsp + 0x3c], r10d
mov r15d, r10d
jmp 0x180004b3a
movzx eax, byte [r14]
lea r15, [rbp - 0xf]
mov byte [rbp - 0x10], al
test edx, edx
je 0x1800041fc
mov byte [rbp - 0xf], 0x2e
lea r15, [rbp - 0xe]
test edx, edx
lea rax, [rbp - 0xe]
lea rcx, [rbp - 0xf]
cmovne rcx, rax
lea eax, [r9 - 1]
cmp eax, edx
jbe 0x180004216
lea r9d, [rdx + 1]
cmp r9d, 1
jbe 0x180004244
mov r15, rcx
inc r14
lea ecx, [r9 - 1]
nop word [rax + rax]
movzx eax, byte [r14]
lea r14, [r14 + 1]
mov byte [r15], al
inc r15
sub rcx, 1
jne 0x180004230
movzx eax, byte [rbx + 0xe]
xor r10d, r10d
mov r11d, edx
mov dword [rsp + 0x34], r10d
sub r11d, r9d
mov byte [rbp - 0x57], al
inc r11d
sub r12d, 1
mov dword [rsp + 0x48], r11d
jns 0x180004270
mov byte [rbp - 0x56], 0x2d
neg r12d
jmp 0x180004274
mov byte [rbp - 0x56], 0x2b
cmp r12d, 0x64
mov r9d, r10d
mov eax, 0x66666667
setge r9b
imul r12d
add r9d, 4
sar edx, 2
mov eax, edx
mov byte [rbp - 0x58], r9b
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r12b, cl
add r12b, 0x30
mov byte [rbp + r9 - 0x58], r12b
mov r8d, edx
mov dword [rsp + 0x44], edx
dec r9d
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [rbp + r9 - 0x58], r8b
cmp r9d, 3
ja 0x1800042b0
mov edi, 0x3000001
mov dword [rsp + 0x3c], edi
jmp 0x180004942
movsd xmm1, qword [r9]
add r8, 8
mov qword [rsp + 0x58], r8
jmp 0x180004530
mov ebx, dword [rsp + 0x30]
lea r10, str.0123456789abcdefxp
cmp dl, 0x42
lea rax, str.0123456789ABCDEFXP
cmove r10, rax
xor r13b, r13b
mov byte [rbp - 0x60], r13b
test bl, 8
je 0x18000433f
movzx eax, byte [r10 + 0xb]
mov r13b, 2
mov byte [rbp - 0x5e], al
mov word [rbp - 0x60], 0x3002
mov edx, 0x180
jmp 0x1800043bb
mov ebx, dword [rsp + 0x30]
lea r10, str.0123456789ABCDEFXP
xor r13b, r13b
mov byte [rbp - 0x60], r13b
test bl, 8
je 0x180004366
mov r13b, 1
mov word [rbp - 0x60], 0x3001
mov edx, 0x330
jmp 0x1800043bb
and r10d, 0xffffffef
mov r15d, 0x10
or r10d, 0x20
mov dword [rsp + 0x30], r10d
mov ebx, dword [rsp + 0x30]
lea r10, str.0123456789abcdefxp
cmp dl, 0x58
lea rax, str.0123456789ABCDEFXP
mov edx, 0x440
cmove r10, rax
xor r13b, r13b
mov byte [rbp - 0x60], r13b
test bl, 8
je 0x1800043bb
movzx eax, byte [r10 + 0x10]
mov r13b, 2
mov byte [rbp - 0x5e], al
mov word [rbp - 0x60], 0x3002
add r8, 8
mov qword [rsp + 0x58], r8
test bl, 0x20
je 0x1800043ce
mov r8, qword [r9]
jmp 0x1800043d1
mov r8d, dword [r9]
xor eax, eax
lea r14, [rbp + 0x1b0]
mov dword [rsp + 0x44], eax
mov byte [rbp - 0x58], al
test r8, r8
jne 0x18000440f
xor r13b, r13b
mov byte [rbp - 0x60], r13b
test r15d, r15d
jne 0x18000440f
xor r10d, r10d
mov r9d, r10d
mov dword [rsp + 0x40], r10d
mov qword [rsp + 0x70], r9
mov edi, r10d
mov dword [rsp + 0x3c], r10d
jmp 0x180004b89
mov r12d, 1
nop word [rax + rax]
mov ecx, edx
mov eax, r12d
shr ecx, 8
mov r9, r14
shl eax, cl
dec r14
cdqe
mov ecx, edx
dec rax
shr rcx, 8
and rax, r8
shr r8, cl
movzx eax, byte [rax + r10]
mov byte [r14], al
test r8, r8
jne 0x180004467
lea rcx, [rbp + 0x1b0]
lea rax, [rbp + 0x1b0]
sub ecx, r14d
sub eax, r14d
cmp eax, r15d
jge 0x18000448b
test bl, 0x40
je 0x180004420
inc edx
mov eax, edx
shr eax, 4
xor eax, edx
test al, 0xf
jne 0x180004420
lea r14, [r9 - 2]
and edx, 0xfffffff0
mov byte [r14], 0x2c
mov qword [rsp + 0x70], r14
jmp 0x180004420
mov rax, qword [rsp + 0x58]
lea edi, [rbp + 0x1b0]
mov r12, qword [rbp - 0x78]
and edx, 0xf0
shl edx, 0x14
mov r9d, ecx
sub edx, r14d
mov qword [rsp + 0x70], r9
add edi, edx
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x3c], edi
xor r10d, r10d
mov qword [rsp + 0x58], rax
jmp 0x180004b3f
add r8, 8
mov qword [rsp + 0x58], r8
test r10b, 0x20
je 0x1800044e6
mov rbx, qword [r9]
cmp dl, 0x75
je 0x180004502
test rbx, rbx
jns 0x180004502
neg rbx
jmp 0x1800044f8
mov eax, dword [r9]
mov ebx, eax
cmp dl, 0x75
je 0x180004502
test eax, eax
jns 0x180004502
neg eax
mov ebx, eax
bts r10d, 7
mov dword [rsp + 0x30], r10d
bt r10d, 8
jae 0x180004969
cmp rbx, 0x400
jae 0x18000451b
mov r15d, r13d
jmp 0x180004528
cmp r15d, 0xffffffff
mov eax, 1
cmove r15d, eax
xorps xmm1, xmm1
cvtsi2sd xmm1, rbx
bt r10d, 8
jae 0x18000457b
bt r10d, 0xb
movaps xmm2, xmm8
jae 0x180004545
movaps xmm2, xmm7
cmp r10d, 0x4000000
jae 0x18000457b
nop
comisd xmm2, xmm1
jbe 0x180004562
movaps xmm0, xmm2
xorps xmm0, xmm6
comisd xmm1, xmm0
ja 0x180004576
add r10d, 0x1000000
divsd xmm1, xmm2
cmp r10d, 0x4000000
jb 0x180004550
mov dword [rsp + 0x30], r10d
mov eax, 6
lea r9, [rsp + 0x44]
cmp r15d, 0xffffffff
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x40]
cmove r15d, eax
lea rcx, [rsp + 0x78]
mov dword [rsp + 0x28], r15d
movsd qword [rsp + 0x20], xmm1
mov dword [rsp + 0x34], r15d
call fcn.180005f80
mov r9d, dword [rsp + 0x40]
mov r12d, dword [rsp + 0x44]
mov r14, qword [rsp + 0x78]
mov qword [rsp + 0x70], r9
test eax, eax
je 0x1800040bd
mov eax, dword [rsp + 0x30]
bts eax, 7
mov dword [rsp + 0x30], eax
jmp 0x1800040c1
test al, 4
je 0x1800045e9
mov word [rbp - 0x60], 0x2001
jmp 0x1800045f3
test al, 2
je 0x1800045f6
mov word [rbp - 0x60], 0x2b01
mov r13b, 1
cmp r12d, 0x7000
je 0x1800041ce
lea r15, [rbp - 0x10]
test r12d, r12d
jg 0x1800046fc
mov byte [rbp - 0x10], 0x30
test r10d, r10d
je 0x18000461d
mov byte [rbp - 0xf], 0x2e
test r10d, r10d
lea rax, [rbp - 0xe]
lea r15, [rbp - 0xf]
cmovne r15, rax
neg r12d
cmp r12d, r10d
cmovg r12d, r10d
mov eax, r12d
mov dword [rsp + 0x48], eax
test r12d, r12d
je 0x180004658
test r15b, 3
je 0x180004654
mov byte [r15], 0x30
inc r15
sub eax, 1
jne 0x180004642
mov dword [rsp + 0x48], eax
cmp eax, 4
jl 0x18000468b
mov edi, eax
mov edx, 0x30303030
shr rdi, 2
mov rcx, r15
lea rbx, [rdi*4]
mov r8, rbx
and r8, 0xfffffffffffffffc
call fcn.18015fe90
mov eax, dword [rsp + 0x48]
add r15, rbx
neg edi
lea eax, [rax + rdi*4]
test eax, eax
je 0x1800046a1
mov r8d, eax
mov dl, 0x30
mov rcx, r15
mov ebx, eax
call fcn.18015fe90
add r15, rbx
mov edx, dword [rsp + 0x34]
mov r11d, edx
mov rbx, qword [rsp + 0x70]
sub r11d, r12d
lea eax, [r12 + rbx]
cmp eax, edx
jle 0x1800046bb
mov ebx, r11d
mov ecx, ebx
test ebx, ebx
je 0x1800046e6
sub r14, r15
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r14 + r15]
mov byte [r15], al
inc r15
sub ecx, 1
jne 0x1800046d0
mov r11d, edx
sub r11d, r12d
sub r11d, ebx
mov edi, 0x3000001
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x3c], edi
jmp 0x1800048c0
mov r8d, eax
and r8d, 0x40
mov dword [rsp + 0x78], r8d
je 0x180004725
mov edi, 0x258
mov eax, 0xaaaaaaab
sub edi, r12d
mul edi
shr edx, 1
lea eax, [rdx + rdx*2]
sub edi, eax
xor r11d, r11d
jmp 0x18000472b
xor r11d, r11d
mov edi, r11d
mov edx, r11d
cmp r12d, r9d
jb 0x180004830
test r8d, r8d
je 0x18000474f
inc edi
cmp edi, 4
jne 0x18000474f
mov byte [r15], 0x2c
mov edi, r11d
inc r15
jmp 0x180004737
mov eax, edx
inc edx
movzx ecx, byte [rax + r14]
mov byte [r15], cl
inc r15
cmp edx, r9d
jb 0x180004737
cmp edx, r12d
jae 0x1800047fb
sub r12d, edx
test r8d, r8d
jne 0x1800047d2
test r12d, r12d
je 0x180004793
nop dword [rax]
test r15b, 3
je 0x180004793
mov byte [r15], 0x30
inc r15
add r12d, 0xffffffff
jne 0x180004780
cmp r12d, 4
jb 0x1800047d2
mov r14d, r12d
mov edx, 0x30303030
shr r14, 2
mov rcx, r15
lea rbx, [r14*4]
mov r8, rbx
and r8, 0xfffffffffffffffc
call fcn.18015fe90
add r15, rbx
nop
add r12d, 0xfffffffc
sub r14, 1
jne 0x1800047c0
mov r8d, dword [rsp + 0x78]
xor r11d, r11d
test r12d, r12d
je 0x1800047fb
test r8d, r8d
je 0x1800047ec
inc edi
cmp edi, 4
jne 0x1800047ec
mov edi, r11d
mov byte [r15], 0x2c
jmp 0x1800047f3
mov byte [r15], 0x30
dec r12d
inc r15
test r12d, r12d
jne 0x1800047d7
mov edx, dword [rsp + 0x34]
lea rax, [rbp - 0x50]
mov edi, r15d
sub edi, eax
add edi, 0x2ffffc0
mov dword [rsp + 0x3c], edi
test edx, edx
je 0x1800048c0
mov byte [r15], 0x2e
inc r15
mov dword [rsp + 0x48], edx
jmp 0x1800048c0
test r8d, r8d
je 0x180004848
inc edi
cmp edi, 4
jne 0x180004848
mov byte [r15], 0x2c
mov edi, r11d
inc r15
jmp 0x180004830
mov eax, edx
inc edx
movzx ecx, byte [rax + r14]
mov byte [r15], cl
inc r15
cmp edx, r12d
jb 0x180004830
lea rax, [rbp - 0x50]
mov edi, r15d
sub edi, eax
add edi, 0x2ffffc0
mov dword [rsp + 0x3c], edi
test r10d, r10d
je 0x18000487b
mov byte [r15], 0x2e
inc r15
mov eax, r9d
sub eax, r12d
cmp eax, r10d
jbe 0x18000488a
lea r9d, [r12 + r10]
cmp edx, r9d
jae 0x1800048b3
mov ecx, edx
mov eax, r9d
add rcx, r14
sub eax, edx
mov edx, eax
nop dword [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [r15], al
inc r15
sub rdx, 1
jne 0x1800048a0
mov eax, r12d
sub eax, r9d
add eax, r10d
mov dword [rsp + 0x48], eax
mov r10d, dword [rsp + 0x30]
xor eax, eax
mov dword [rsp + 0x34], eax
bt r10d, 8
jae 0x18000493f
mov r8d, r10d
mov byte [rbp - 0x57], 0x20
shr r8d, 0xa
not r8b
and r8b, 1
mov byte [rbp - 0x58], r8b
cmp r10d, 0x1000000
jb 0x18000493f
mov r9d, 0x800
movzx edx, r8b
test r9d, r10d
lea rax, str._kMGT
lea rcx, str._KMGT
cmove rcx, rax
mov eax, r10d
shr rax, 0x18
inc r8b
movzx eax, byte [rcx + rax]
mov byte [rbp + rdx - 0x57], al
mov eax, r10d
and eax, 0x1800
cmp eax, r9d
jne 0x18000493b
movzx eax, r8b
inc r8b
mov byte [rbp + rax - 0x57], 0x69
mov byte [rbp - 0x58], r8b
xor r10d, r10d
mov r12, qword [rbp - 0x78]
lea rax, [rbp - 0x50]
sub r15d, eax
lea r14, [rbp - 0x10]
lea r9d, [r15 - 0x40]
mov r15d, dword [rsp + 0x34]
mov qword [rsp + 0x70], r9
mov dword [rsp + 0x40], r9d
jmp 0x180004b3a
mov edi, dword [rsp + 0x30]
lea r14, [rbp + 0x1b0]
and edi, 0x40
mov r10d, r13d
movabs r12, 0xabcc77118461cefd
nop dword [rax]
nop dword [rax + rax]
lea r11, [r14 - 8]
mov r8d, ebx
cmp rbx, 0x5f5e100
jb 0x1800049b8
mov rax, r12
mul rbx
mov rbx, rdx
shr rbx, 0x1a
imul eax, ebx, 0x5f5e100
sub r8d, eax
jmp 0x1800049bb
mov rbx, r13
test edi, edi
jne 0x1800049fe
lea rcx, [0x180000000]
nop word [rax + rax]
sub r14, 2
mov eax, 0x51eb851f
mul r8d
shr edx, 5
imul eax, edx, 0x64
sub r8d, eax
add r8d, r8d
movzx eax, word [r8 + rcx + 0x34cd62]
mov r8d, edx
mov word [r14], ax
test edx, edx
jne 0x1800049d0
jmp 0x180004a58
test r8d, r8d
je 0x180004a58
nop dword [rax]
nop word [rax + rax]
mov eax, r10d
dec r14
inc r10d
mov r9d, r8d
cmp eax, 3
jne 0x180004a2d
mov r10d, r13d
mov byte [r14], 0x2c
dec r11
jmp 0x180004a53
mov eax, 0xcccccccd
mul r9d
mov r8d, edx
shr r8d, 3
movzx eax, r8b
shl al, 2
lea ecx, [rax + r8]
add cl, cl
sub r9b, cl
add r9b, 0x30
mov byte [r14], r9b
test r8d, r8d
jne 0x180004a10
test rbx, rbx
je 0x180004a95
cmp r14, r11
je 0x180004990
test edi, edi
je 0x180004a84
mov eax, r10d
inc r10d
cmp eax, 3
jne 0x180004a84
dec r14
mov r10d, r13d
dec r11
mov byte [r14], 0x2c
jmp 0x180004a8b
dec r14
mov byte [r14], 0x30
cmp r14, r11
jne 0x180004a66
jmp 0x180004990
cmp byte [r14], 0x30
mov r12, qword [rbp - 0x78]
jne 0x180004aae
lea rax, [rbp + 0x1b0]
cmp r14, rax
je 0x180004aae
inc r14
mov r10d, dword [rsp + 0x30]
xor r13b, r13b
mov byte [rbp - 0x58], 0
mov byte [rbp - 0x60], r13b
test r10b, r10b
jns 0x180004acb
mov word [rbp - 0x60], 0x2d01
jmp 0x180004ae5
test r10b, 4
je 0x180004ad9
mov word [rbp - 0x60], 0x2001
jmp 0x180004ae5
test r10b, 2
je 0x180004ae8
mov word [rbp - 0x60], 0x2b01
mov r13b, 1
lea rax, [rbp + 0x1b0]
sub eax, r14d
mov r9d, eax
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x70], r9
jne 0x180004b19
mov eax, 1
mov byte [r14 - 1], 0x30
dec r14
mov dword [rsp + 0x40], eax
mov r9d, eax
mov qword [rsp + 0x70], r9
lea edi, [rax + 0x3000000]
test r15d, r15d
mov rax, qword [rsp + 0x58]
mov r10d, 0
cmovs r15d, r10d
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x3c], edi
mov r11, qword [rsp + 0x50]
cmp r15d, r9d
jge 0x180004b89
jmp 0x180004b86
mov byte [rbp + 0x1af], dl
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x68], r13d
xor r13b, r13b
lea r14, [rbp + 0x1af]
xor r10d, r10d
mov byte [rbp - 0x58], r13b
mov dword [rsp + 0x3c], r10d
mov edi, r10d
mov dword [rsp + 0x44], r10d
mov byte [rbp - 0x60], r13b
lea r9d, [r10 + 1]
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x70], r9
mov r15d, r9d
mov edx, dword [rsp + 0x68]
movsx eax, byte [rbp - 0x58]
add eax, dword [rsp + 0x48]
movsx ecx, r13b
add ecx, eax
add ecx, r15d
cmp edx, ecx
cmovl edx, ecx
sub r15d, r9d
sub edx, ecx
mov dword [rsp + 0x34], r15d
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x68], edx
test cl, 1
jne 0x180004bdb
test cl, 0x10
je 0x180004bd4
cmp edx, r15d
cmovg r15d, edx
mov edx, r10d
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x34], r15d
jmp 0x180004bdb
and ecx, 0xffffffbf
mov dword [rsp + 0x30], ecx
lea eax, [r15 + rdx]
test eax, eax
je 0x180004ece
test cl, 1
jne 0x180004cdf
test edx, edx
jle 0x180004cdf
mov r13, qword [rbp - 0x80]
nop dword [rax]
mov r15d, edx
test r12, r12
je 0x180004c18
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp edx, eax
cmovg r15d, eax
sub edx, r15d
mov dword [rsp + 0x68], edx
test r15d, r15d
je 0x180004c36
test sil, 3
je 0x180004c36
mov byte [rsi], 0x20
inc rsi
sub r15d, 1
jne 0x180004c24
cmp r15d, 4
jl 0x180004c68
mov edi, r15d
mov edx, 0x20202020
shr rdi, 2
mov rcx, rsi
lea rbx, [rdi*4]
mov r8, rbx
and r8, 0xfffffffffffffffc
call fcn.18015fe90
add rsi, rbx
neg edi
lea r15d, [r15 + rdi*4]
test r15d, r15d
je 0x180004c80
mov r8d, r15d
mov dl, 0x20
mov rcx, rsi
mov ebx, r15d
call fcn.18015fe90
add rsi, rbx
mov r11, qword [rsp + 0x50]
test r12, r12
je 0x180004cc5
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180004cc5
mov r15d, dword [rsp + 0x38]
mov rdx, r13
add r15d, r8d
mov rcx, r11
mov dword [rsp + 0x38], r15d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
mov edx, dword [rsp + 0x68]
test edx, edx
jg 0x180004c00
movzx r13d, byte [rbp - 0x60]
mov edi, dword [rsp + 0x3c]
mov r15d, dword [rsp + 0x34]
lea rbx, [rbp - 0x5f]
test r13b, r13b
je 0x180004d7c
nop dword [rax]
movsx ecx, r13b
test r12, r12
je 0x180004d08
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp ecx, eax
cmovg ecx, eax
sub r13b, cl
mov byte [rbp - 0x60], r13b
test ecx, ecx
je 0x180004d35
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbx]
inc rbx
mov byte [rsi], al
inc rsi
sub ecx, 1
jne 0x180004d20
movzx r13d, byte [rbp - 0x60]
test r12, r12
je 0x180004d73
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180004d73
mov rdx, qword [rbp - 0x80]
mov rcx, r11
add dword [rsp + 0x38], r8d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052cf
movzx r13d, byte [rbp - 0x60]
test r13b, r13b
jne 0x180004cf0
mov ecx, dword [rsp + 0x30]
mov r8d, edi
shr r8d, 0x18
and ecx, 0x40
mov dword [rsp + 0x78], r8d
mov dword [rsp + 0x3c], ecx
je 0x180004db3
and edi, 0xffffff
lea ecx, [r8 + 1]
xor edx, edx
mov r12d, r8d
lea eax, [r15 + rdi]
div ecx
mov ecx, dword [rsp + 0x3c]
sub r12d, edx
jmp 0x180004db8
xor eax, eax
mov r12d, eax
test r15d, r15d
jle 0x180004ece
mov r13, qword [rbp - 0x78]
test r13, r13
je 0x180004ddc
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp dword [rsp + 0x34], eax
cmovg r15d, eax
sub dword [rsp + 0x34], r15d
test ecx, ecx
jne 0x180004e3d
test r15d, r15d
je 0x180004e02
nop word [rax + rax]
test sil, 3
je 0x180004e02
mov byte [rsi], 0x30
inc rsi
sub r15d, 1
jne 0x180004df0
cmp r15d, 4
jl 0x180004e3d
mov edi, r15d
mov edx, 0x30303030
shr rdi, 2
mov rcx, rsi
lea rbx, [rdi*4]
mov r8, rbx
and r8, 0xfffffffffffffffc
call fcn.18015fe90
mov ecx, dword [rsp + 0x3c]
add rsi, rbx
mov r8d, dword [rsp + 0x78]
neg edi
lea r15d, [r15 + rdi*4]
test r15d, r15d
je 0x180004e6c
xor r13d, r13d
test ecx, ecx
je 0x180004e5c
mov eax, r12d
inc r12d
cmp eax, r8d
jne 0x180004e5c
mov r12d, r13d
mov byte [rsi], 0x2c
jmp 0x180004e5f
mov byte [rsi], 0x30
inc rsi
sub r15d, 1
jne 0x180004e45
mov r13, qword [rbp - 0x78]
mov r11, qword [rsp + 0x50]
test r13, r13
je 0x180004eb2
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180004eb2
mov r15d, dword [rsp + 0x38]
mov rcx, r11
mov rdx, qword [rbp - 0x80]
add r15d, r8d
mov dword [rsp + 0x38], r15d
call r13
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
mov r15d, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x78]
test r15d, r15d
jg 0x180004dc5
movzx r13d, byte [rbp - 0x60]
mov r12, qword [rbp - 0x78]
lea rbx, [rbp - 0x5f]
mov qword [rsp + 0x78], rbx
test r13b, r13b
je 0x180004f79
movsx ecx, r13b
test r12, r12
je 0x180004efc
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp ecx, eax
cmovg ecx, eax
sub r13b, cl
mov byte [rbp - 0x60], r13b
test ecx, ecx
je 0x180004f2a
nop word [rax + rax]
movzx eax, byte [rbx]
inc rbx
mov byte [rsi], al
inc rsi
sub ecx, 1
jne 0x180004f10
movzx r13d, byte [rbp - 0x60]
mov qword [rsp + 0x78], rbx
test r12, r12
je 0x180004f70
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180004f70
mov r15d, dword [rsp + 0x38]
mov rcx, r11
mov rdx, qword [rbp - 0x80]
add r15d, r8d
mov dword [rsp + 0x38], r15d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
movzx r13d, byte [rbp - 0x60]
test r13b, r13b
jne 0x180004ee4
mov rbx, qword [rsp + 0x70]
test ebx, ebx
je 0x18000502a
mov ecx, ebx
test r12, r12
je 0x180004f9c
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp ebx, eax
cmovg ecx, eax
sub ebx, ecx
cmp ecx, 4
jl 0x180004fc3
mov edx, ecx
shr rdx, 2
mov eax, edx
neg eax
lea ecx, [rcx + rax*4]
mov eax, dword [r14]
add r14, 4
mov dword [rsi], eax
add rsi, 4
sub rdx, 1
jne 0x180004fb0
test ecx, ecx
je 0x180004fe1
nop word [rax + rax]
movzx eax, byte [r14]
inc r14
mov byte [rsi], al
inc rsi
sub ecx, 1
jne 0x180004fd0
test r12, r12
je 0x180005022
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180005022
mov r15d, dword [rsp + 0x38]
mov rcx, r11
mov rdx, qword [rbp - 0x80]
add r15d, r8d
mov dword [rsp + 0x38], r15d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
test ebx, ebx
jne 0x180004f86
mov edi, dword [rsp + 0x48]
test edi, edi
je 0x18000510e
mov r14d, edi
test r12, r12
je 0x18000504e
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp edi, eax
cmovg r14d, eax
sub edi, r14d
mov dword [rsp + 0x48], edi
test r14d, r14d
je 0x180005072
nop word [rax + rax]
test sil, 3
je 0x180005072
mov byte [rsi], 0x30
inc rsi
sub r14d, 1
jne 0x180005060
cmp r14d, 4
jl 0x1800050a8
mov edi, r14d
mov edx, 0x30303030
shr rdi, 2
mov rcx, rsi
lea rbx, [rdi*4]
mov r8, rbx
and r8, 0xfffffffffffffffc
call fcn.18015fe90
add rsi, rbx
neg edi
lea r14d, [r14 + rdi*4]
mov edi, dword [rsp + 0x48]
test r14d, r14d
je 0x1800050c0
mov r8d, r14d
mov dl, 0x30
mov rcx, rsi
mov ebx, r14d
call fcn.18015fe90
add rsi, rbx
mov r11, qword [rsp + 0x50]
test r12, r12
je 0x180005106
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180005106
mov r15d, dword [rsp + 0x38]
mov rcx, r11
mov rdx, qword [rbp - 0x80]
add r15d, r8d
mov dword [rsp + 0x38], r15d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
test edi, edi
jne 0x180005036
cmp byte [rbp - 0x58], 0
lea rbx, [rbp - 0x57]
mov qword [rsp + 0x78], rbx
je 0x18000519c
nop dword [rax]
movsx ecx, byte [rbp - 0x58]
test r12, r12
je 0x180005138
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp ecx, eax
cmovg ecx, eax
sub byte [rbp - 0x58], cl
test ecx, ecx
je 0x180005155
nop
movzx eax, byte [rbx]
inc rbx
mov byte [rsi], al
inc rsi
sub ecx, 1
jne 0x180005140
mov qword [rsp + 0x78], rbx
test r12, r12
je 0x180005196
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180005196
mov r15d, dword [rsp + 0x38]
mov rcx, r11
mov rdx, qword [rbp - 0x80]
add r15d, r8d
mov dword [rsp + 0x38], r15d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
cmp byte [rbp - 0x58], 0
jne 0x180005120
test byte [rsp + 0x30], 1
je 0x18000527f
mov r13d, dword [rsp + 0x68]
test r13d, r13d
jle 0x18000527f
mov r14d, r13d
test r12, r12
je 0x1800051ce
mov eax, r11d
sub eax, esi
add eax, 0x200
cmp r13d, eax
cmovg r14d, eax
sub r13d, r14d
test r14d, r14d
je 0x1800051e8
test sil, 3
je 0x1800051e8
mov byte [rsi], 0x20
inc rsi
sub r14d, 1
jne 0x1800051d6
cmp r14d, 4
jl 0x18000521a
mov edi, r14d
mov edx, 0x20202020
shr rdi, 2
mov rcx, rsi
lea rbx, [rdi*4]
mov r8, rbx
and r8, 0xfffffffffffffffc
call fcn.18015fe90
add rsi, rbx
neg edi
lea r14d, [r14 + rdi*4]
test r14d, r14d
je 0x180005232
mov r8d, r14d
mov dl, 0x20
mov rcx, rsi
mov ebx, r14d
call fcn.18015fe90
add rsi, rbx
mov r11, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x38]
test r12, r12
je 0x180005274
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 1]
cmp eax, 0x200
jl 0x180005274
mov rdx, qword [rbp - 0x80]
add r15d, r8d
mov rcx, r11
mov dword [rsp + 0x38], r15d
call r12
mov qword [rsp + 0x50], rax
mov r11, rax
mov rsi, rax
test rax, rax
je 0x1800052d4
test r13d, r13d
jne 0x1800051b5
jmp 0x180005284
mov r15d, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
inc rdi
mov r9, qword [rbp - 0x80]
xor r14d, r14d
jmp 0x1800038d7
test r12, r12
jne 0x1800052a7
mov byte [rsi], r12b
jmp 0x1800052d4
mov r8d, esi
sub r8d, r11d
lea eax, [r8 + 0x1ff]
cmp eax, 0x200
jl 0x1800052d4
add r15d, r8d
mov rdx, r9
mov rcx, r11
call r12
mov r11, rax
mov rsi, rax
jmp 0x1800052d4
mov r15d, dword [rsp + 0x38]
sub esi, r11d
lea eax, [r15 + rsi]
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.18015cd30
lea r11, [rsp + 0x2f8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret