Function at 0x1400dca80
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10030]
mov eax, 0x10130
call fcn.1400e0110
sub rsp, rax
movaps xmmword [rsp + 0x10120], xmm6
mov r14d, r9d
mov rdi, rdx
mov r15, rcx
xor ebx, ebx
mov dword [rsp + 0x60], ebx
test r8b, r8b
jne case.0x1400dcbac.0
mov r8d, ebx
mov ecx, dword [rcx + 0x30]
movzx r12d, word [rbp + 0x10088]
movzx r13d, word [rbp + 0x10080]
test ecx, ecx
je 0x1400dcb26
mov rdx, qword [r15 + 0x40]
nop dword [rax + rax]
movsxd rax, r8d
mov rsi, qword [rdx + rax*8]
test rsi, rsi
je 0x1400dcb1e
cmp dword [rsi + 0xc], 0x64617461
jne 0x1400dcb1e
cmp byte [rsi + 0x28], bl
jne 0x1400dcb1e
cmp dword [rsi + 0x2c], r14d
jne 0x1400dcb1e
cmp word [rsi + 0x30], r13w
jne 0x1400dcb1e
cmp word [rsi + 0x32], r12w
je 0x1400dcb88
inc r8d
cmp r8d, ecx
jb 0x1400dcaf0
mov ecx, 0x40
call fcn.1400df728
mov rsi, rax
mov qword [rsp + 0x58], rax
mov dword [rax + 0xc], 0x64617461
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 8
mov qword [rax + 0x20], r15
mov byte [rax + 8], bl
lea rax, vtable.CTagDataAtom.0
mov qword [rsi], rax
mov dword [rsi + 0x34], ebx
mov qword [rsi + 0x38], rbx
mov byte [rsi + 0x28], bl
mov dword [rsi + 0x2c], r14d
mov word [rsi + 0x30], r13w
mov word [rsi + 0x32], r12w
lea rcx, [r15 + 0x28]
mov rdx, rsi
call fcn.140007a80
mov rax, qword [rsi + 0x18]
add qword [r15 + 0x18], rax
cmp r14d, 0x4f
ja case.0x1400dcbac.0
lea rdx, [0x140000000]
movzx eax, byte [rdx + r14 + 0xddca0]
mov ecx, dword [rdx + rax*4 + 0xddc60]
add rcx, rdx
jmp rcx
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x48], rbx
mov rdx, 0xffffffffffffffff
mov rcx, qword [rdi]
call fcn.14005e720
mov r15, rax
mov dword [rsp + 0x50], 3
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x1400dcbe4
mov r14d, ebx
jmp 0x1400dcc01
mov r14, r15
nop word [rax + rax]
movzx eax, byte [r14]
inc r14
test al, al
jne 0x1400dcbf0
sub r14d, r15d
dec r14d
mov dword [rbp + 0x18], 1
mov qword [rbp + 0x10], rbx
mov ecx, r14d
call fcn.1400df764
mov rdi, rax
mov dword [rbp + 0x18], 3
mov qword [rbp + 0x10], rax
mov r8d, r14d
xor edx, edx
mov rcx, rax
call fcn.1400e24f0
mov r8d, r14d
mov rdx, r15
mov rcx, rdi
call fcn.1400e1d70
mov r8d, r14d
mov rdx, rdi
mov rcx, rsi
call fcn.1400ce650
nop
mov rcx, rdi
call fcn.1400df720
nop
test r15, r15
je 0x1400dd9ce
mov rcx, r15
call fcn.1400df720
mov al, 1
jmp 0x1400dcea0
mov rdx, rdi
lea rcx, [rbp - 0x50]
call fcn.1400080e0
nop
lea r12, vtable.JRPropertyMap.0
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x40], rbx
mov byte [rbp - 0x38], 1
xor edx, edx
lea rcx, [rbp - 0x50]
call fcn.140045f20
nop
call fcn.140008400
mov r10, qword [rax]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r15, 0xffffffffffffffff
mov r9d, r15d
mov r8d, r15d
lea rdx, [0x140129d58]
mov rcx, rax
call qword [r10 + 0x28]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], rbx
mov byte [rbp - 0x18], 1
xor edx, edx
lea rcx, [rbp - 0x30]
call fcn.140045f20
nop
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.140045dc0
nop
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x70]
call fcn.1400333a0
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x78]
mov rax, qword [rsp + 0x78]
call qword [rax + 0x80]
movzx eax, byte [rbp - 0x18]
mov byte [rbp - 0x78], al
mov qword [rbp - 0x70], 3
mov qword [rbp - 0x68], 3
mov byte [rbp - 0x60], 0
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x28], r12
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x1400dcd4f
mov rax, qword [rcx]
lea edx, [r15 + 2]
call qword [rax]
mov qword [rbp - 0x20], rbx
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400dcd80
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400dcd76
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400dcd80
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x50]
call fcn.140046c90
nop
mov rax, qword [rsp + 0x58]
cmp dword [rax - 0x10], 0
jne 0x1400dcec6
lea rdx, [rax - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400dcdcb
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400dcdc1
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400dcdcb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov dil, 1
test byte [rsp + 0x60], 1
je 0x1400dce21
mov qword [rbp - 8], r12
mov rcx, qword [rbp]
test rcx, rcx
je 0x1400dcdf0
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp], rbx
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400dce21
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400dce17
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400dce21
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test dil, dil
je 0x1400dcfc2
cmp byte [rbp - 0x61], 0
je 0x1400dce44
mov rcx, qword [rbp - 0x58]
cmp rcx, 0xffffffffffffffff
je 0x1400dce44
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x58], r15
mov byte [rbp - 0x61], 0
lea rcx, [rsp + 0x70]
call fcn.140045eb0
nop
mov qword [rbp - 0x48], r12
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400dce6e
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp - 0x40], rbx
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je case.0x1400dcbac.0
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400dce94
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg case.0x1400dcbac.0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor al, al
lea r11, [rsp + 0x10130]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
xor ecx, ecx
call fcn.140045820
test rax, rax
je 0x1400dcefa
mov r8, qword [rax]
mov dl, 1
mov rcx, rax
call qword [r8 + 0x90]
test rax, rax
je 0x1400dcefa
mov r9, qword [rax]
xor r8d, r8d
mov rdx, qword [rsp + 0x58]
mov rcx, rax
call qword [r9 + 0x10]
jmp 0x1400dcf04
mov rcx, qword [rsp + 0x58]
call fcn.140042a10
movzx r14d, al
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400dcf3a
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400dcf30
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400dcf3a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
test r14b, r14b
je 0x1400dcdcb
mov rdx, rdi
lea rcx, [rbp - 0x10]
call fcn.1400080e0
nop
mov qword [rbp - 8], r12
mov qword [rbp], rbx
mov byte [rbp + 8], 1
xor edx, edx
lea rcx, [rbp - 0x10]
call fcn.140045f20
nop
mov dword [rsp + 0x60], 1
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x70]
call fcn.1400333a0
lea rdx, [rbp - 8]
lea rcx, [rsp + 0x78]
mov rax, qword [rsp + 0x78]
call qword [rax + 0x80]
movzx eax, byte [rbp + 8]
mov byte [rbp - 0x78], al
mov qword [rbp - 0x70], 3
mov dword [rbp - 0x68], 3
lea rcx, [rsp + 0x70]
call fcn.14004fe20
test al, al
je 0x1400dcdcb
xor dil, dil
jmp 0x1400dcdce
cmp byte [rbp - 0x61], 0
jne 0x1400dcfd9
mov dl, 1
lea rcx, [rsp + 0x70]
call fcn.140048a50
mov rdi, rax
jmp 0x1400dcff9
mov dword [rsp + 0x64], ebx
lea rdx, [rsp + 0x64]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, dword [rsp + 0x64]
shl rdi, 0x20
mov eax, eax
add rdi, rax
mov edx, edi
mov rcx, rsi
call fcn.1400ce700
xor edx, edx
mov r8d, 0x10000
lea rcx, [rbp + 0x20]
call fcn.1400e24f0
mov r14d, ebx
test rdi, rdi
jle 0x1400dd088
mov r8d, 0x10000
cmp rdi, r8
cmovb r8, rdi
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x40]
lea rdx, [rbp + 0x20]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400dd082
mov ecx, dword [rsp + 0x40]
test ecx, ecx
je 0x1400dd088
mov edx, dword [rsi + 0x34]
cmp r14d, edx
jae 0x1400dd078
lea eax, [rcx + r14]
cmp eax, edx
ja 0x1400dd078
mov r8d, ecx
mov ecx, r14d
add rcx, qword [rsi + 0x38]
lea rdx, [rbp + 0x20]
call fcn.1400e1d70
mov ecx, dword [rsp + 0x40]
mov eax, ecx
sub rdi, rax
add r14d, ecx
jmp 0x1400dd017
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [rbp - 0x61], 0
je 0x1400dd0a2
mov rcx, qword [rbp - 0x58]
cmp rcx, 0xffffffffffffffff
je 0x1400dd0a2
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x58], r15
mov byte [rbp - 0x61], 0
lea rcx, [rsp + 0x70]
call fcn.140045eb0
nop
mov qword [rbp - 0x48], r12
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400dd0cc
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp - 0x40], rbx
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400dd0fc
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400dd0f2
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x1400dd0fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov al, 1
jmp 0x1400dcea0
mov rcx, qword [rdi]
call fcn.14001e0d0
mov ecx, eax
shr ecx, 0x18
mov byte [rbp + 0x10070], cl
mov ecx, eax
sar ecx, 0x10
mov byte [rbp + 0x10071], cl
mov ecx, eax
sar ecx, 8
mov byte [rbp + 0x10072], cl
mov byte [rbp + 0x10073], al
mov ecx, dword [rsi + 0x34]
mov eax, 4
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 4
jae 0x1400dd15d
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 4
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rdx, qword [rsi + 0x38]
test rdx, rdx
je 0x1400ddb19
mov dword [rsi + 0x34], 4
mov eax, dword [rbp + 0x10070]
mov dword [rdx], eax
mov al, 1
jmp 0x1400dcea0
mov rcx, rdi
call fcn.1400365e0
mov ecx, eax
shr ecx, 0x18
mov byte [rbp + 0x10070], cl
mov ecx, eax
shr ecx, 0x10
mov byte [rbp + 0x10071], cl
mov ecx, eax
shr ecx, 8
mov byte [rbp + 0x10072], cl
mov byte [rbp + 0x10073], al
mov ecx, dword [rsi + 0x34]
mov eax, 4
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 4
jae 0x1400dd1da
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 4
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1400ddb4f
mov dword [rsi + 0x34], 4
mov eax, dword [rbp + 0x10070]
mov dword [rcx], eax
mov al, 1
jmp 0x1400dcea0
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400dd38d
movzx eax, word [rdi]
test ax, ax
je 0x1400dd38d
mov rdx, rdi
mov r12, rdi
neg r12
nop
cmp ax, 0x20
je 0x1400dd22c
cmp ax, 0x2b
jne 0x1400dd247
add rdi, 2
lea rax, [rdi + r12]
sar rax, 1
cmp eax, 0x7fffffff
jge 0x1400dd38d
movzx eax, word [rdi]
jmp 0x1400dd220
mov byte [rbp + 0x10070], bl
cmp ax, 0x2d
je 0x1400dd25d
mov ecx, 0xe2
cmp ax, cx
jne 0x1400dd27c
mov byte [rbp + 0x10070], 1
add rdi, 2
mov rax, rdi
sub rax, rdx
sar rax, 1
cmp eax, 0x7fffffff
jge 0x1400dd38d
mov r15, rbx
mov r14, rbx
xor r8b, r8b
mov eax, ebx
mov dword [rsp + 0x40], ebx
movzx ecx, word [rdi]
test cx, cx
je 0x1400dd31f
mov r13d, 0xffdf
mov edx, 0xfffd
lea eax, [rcx - 0x2c]
test dx, ax
je 0x1400dd2f4
lea eax, [rcx - 0x45]
test r13w, ax
je 0x1400dd373
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x1400dd31b
movzx edx, cx
sub rdx, 0x30
test r8b, r8b
je 0x1400dd2ea
lea rax, [r15 + r15*4]
lea r15, [rdx + rax*2]
test r14, r14
jne 0x1400dd2e1
mov r14d, 0xa
jmp 0x1400dd301
lea r14, [r14 + r14*4]
add r14, r14
jmp 0x1400dd301
lea rax, [rbx + rbx*4]
lea rbx, [rdx + rax*2]
jmp 0x1400dd301
test r8b, r8b
jne 0x1400dd31b
call fcn.140036540
mov r8b, 1
add rdi, 2
lea rax, [rdi + r12]
sar rax, 1
cmp eax, 0x7fffffff
jge 0x1400dd31b
movzx ecx, word [rdi]
test cx, cx
jne 0x1400dd29d
mov eax, dword [rsp + 0x40]
xorps xmm6, xmm6
cvtsi2sd xmm6, rbx
test r14, r14
jle 0x1400dd344
xorps xmm1, xmm1
cvtsi2sd xmm1, r15
xorps xmm0, xmm0
cvtsi2sd xmm0, r14
divsd xmm1, xmm0
addsd xmm6, xmm1
test eax, eax
je 0x1400dd361
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsd xmm0, qword [0x1401568b0]
call fcn.140108470
mulsd xmm6, xmm0
cmp byte [rbp + 0x10070], 0
je 0x1400dd390
xorps xmm6, xmmword [0x140156a30]
jmp 0x1400dd390
lea rcx, [rdi + 2]
mov r9d, 0x7fffffff
lea rdx, [rsp + 0x48]
call fcn.1400367d0
cvttsd2si eax, xmm0
jmp 0x1400dd31f
xorps xmm6, xmm6
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm6
movss dword [rbp + 0x10070], xmm0
mov eax, dword [rbp + 0x10070]
mov ebx, eax
and ebx, 0xff0000
mov ecx, eax
shr ecx, 0x10
or ebx, ecx
shr ebx, 8
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
shl ecx, 8
or ebx, ecx
mov ecx, dword [rsi + 0x34]
mov eax, 4
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 4
jae 0x1400dd3f3
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 4
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x1400ddb85
mov dword [rsi + 0x34], 4
mov dword [rax], ebx
mov al, 1
jmp 0x1400dcea0
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400dd59e
movzx eax, word [rdi]
test ax, ax
je 0x1400dd59e
mov rdx, rdi
mov r12, rdi
neg r12
cmp ax, 0x20
je 0x1400dd43d
cmp ax, 0x2b
jne 0x1400dd458
add rdi, 2
lea rax, [rdi + r12]
sar rax, 1
cmp eax, 0x7fffffff
jge 0x1400dd59e
movzx eax, word [rdi]
jmp 0x1400dd431
mov byte [rbp + 0x10070], bl
cmp ax, 0x2d
je 0x1400dd46e
mov ecx, 0xe2
cmp ax, cx
jne 0x1400dd48d
mov byte [rbp + 0x10070], 1
add rdi, 2
mov rax, rdi
sub rax, rdx
sar rax, 1
cmp eax, 0x7fffffff
jge 0x1400dd59e
mov r15, rbx
mov r14, rbx
xor r8b, r8b
mov eax, ebx
mov dword [rsp + 0x40], ebx
movzx ecx, word [rdi]
test cx, cx
je 0x1400dd530
mov r13d, 0xffdf
mov edx, 0xfffd
lea eax, [rcx - 0x2c]
test dx, ax
je 0x1400dd505
lea eax, [rcx - 0x45]
test r13w, ax
je 0x1400dd584
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x1400dd52c
movzx edx, cx
sub rdx, 0x30
test r8b, r8b
je 0x1400dd4fb
lea rax, [r15 + r15*4]
lea r15, [rdx + rax*2]
test r14, r14
jne 0x1400dd4f2
mov r14d, 0xa
jmp 0x1400dd512
lea r14, [r14 + r14*4]
add r14, r14
jmp 0x1400dd512
lea rax, [rbx + rbx*4]
lea rbx, [rdx + rax*2]
jmp 0x1400dd512
test r8b, r8b
jne 0x1400dd52c
call fcn.140036540
mov r8b, 1
add rdi, 2
lea rax, [rdi + r12]
sar rax, 1
cmp eax, 0x7fffffff
jge 0x1400dd52c
movzx ecx, word [rdi]
test cx, cx
jne 0x1400dd4ae
mov eax, dword [rsp + 0x40]
xorps xmm6, xmm6
cvtsi2sd xmm6, rbx
test r14, r14
jle 0x1400dd555
xorps xmm1, xmm1
cvtsi2sd xmm1, r15
xorps xmm0, xmm0
cvtsi2sd xmm0, r14
divsd xmm1, xmm0
addsd xmm6, xmm1
test eax, eax
je 0x1400dd572
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsd xmm0, qword [0x1401568b0]
call fcn.140108470
mulsd xmm6, xmm0
cmp byte [rbp + 0x10070], 0
je 0x1400dd5a1
xorps xmm6, xmmword [0x140156a30]
jmp 0x1400dd5a1
lea rcx, [rdi + 2]
mov r9d, 0x7fffffff
lea rdx, [rsp + 0x48]
call fcn.1400367d0
cvttsd2si eax, xmm0
jmp 0x1400dd530
xorps xmm6, xmm6
movsd qword [rsp + 0x48], xmm6
mov rax, qword [rsp + 0x48]
mov rbx, rax
shl rbx, 0x10
mov rcx, rax
and ecx, 0xff00
or rbx, rcx
shl rbx, 0x10
mov rcx, rax
and ecx, 0xff0000
or rbx, rcx
shl rbx, 0x10
mov rcx, rax
mov r8d, 0xff000000
and rcx, r8
or rbx, rcx
shl rbx, 8
mov rdx, rax
sar rdx, 0x10
and rdx, r8
mov rcx, rax
movabs r8, 0xff00000000
and rcx, r8
or rdx, rcx
shr rdx, 8
or rbx, rdx
mov rcx, rax
sar rcx, 0x38
movzx edx, cl
or rbx, rdx
sar rax, 0x28
and eax, 0xff00
or rbx, rax
mov ecx, dword [rsi + 0x34]
mov eax, 8
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 8
jae 0x1400dd64e
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 8
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x1400ddbbb
mov dword [rsi + 0x34], 8
mov qword [rax], rbx
mov al, 1
jmp 0x1400dcea0
mov rcx, qword [rdi]
call fcn.14001e0d0
mov ebx, eax
mov edx, dword [rsi + 0x34]
mov ecx, 1
sub rcx, rdx
add qword [rsi + 0x18], rcx
cmp edx, 1
jae 0x1400dd6a1
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 1
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x1400ddbf1
mov dword [rsi + 0x34], 1
mov byte [rax], bl
mov al, 1
jmp 0x1400dcea0
mov rcx, qword [rdi]
call fcn.14001e0d0
mov ecx, eax
sar ecx, 8
mov byte [rbp + 0x10070], cl
mov byte [rbp + 0x10071], al
mov ecx, dword [rsi + 0x34]
mov eax, 2
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 2
jae 0x1400dd702
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 2
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1400ddc27
mov dword [rsi + 0x34], 2
movzx eax, word [rbp + 0x10070]
mov word [rcx], ax
mov al, 1
jmp 0x1400dcea0
mov rcx, qword [rdi]
call fcn.14001e0d0
mov ecx, eax
shr ecx, 0x18
mov byte [rbp + 0x10070], cl
mov ecx, eax
sar ecx, 0x10
mov byte [rbp + 0x10071], cl
mov ecx, eax
sar ecx, 8
mov byte [rbp + 0x10072], cl
mov byte [rbp + 0x10073], al
mov ecx, dword [rsi + 0x34]
mov eax, 4
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 4
jae 0x1400dd781
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 4
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1400dda0b
jmp 0x1400dd1e7
mov rcx, qword [rdi]
call fcn.14003b5b0
mov rdx, rax
mov rcx, rax
shr rcx, 0x38
mov byte [rsp + 0x48], cl
mov rcx, rax
sar rcx, 0x30
mov byte [rsp + 0x49], cl
mov rcx, rax
sar rcx, 0x28
mov byte [rsp + 0x4a], cl
mov rcx, rax
sar rcx, 0x20
mov byte [rsp + 0x4b], cl
mov rcx, rax
sar rcx, 0x18
mov byte [rsp + 0x4c], cl
sar rax, 0x10
mov byte [rsp + 0x4d], al
mov rax, rdx
sar rax, 8
mov byte [rsp + 0x4e], al
mov byte [rsp + 0x4f], dl
mov ecx, dword [rsi + 0x34]
mov eax, 8
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 8
jae 0x1400dd817
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 8
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1400dda41
jmp 0x1400dd9bf
mov rcx, rdi
call fcn.1400365e0
mov ebx, eax
mov edx, dword [rsi + 0x34]
mov ecx, 1
sub rcx, rdx
add qword [rsi + 0x18], rcx
cmp edx, 1
jae 0x1400dd85e
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 1
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x1400dda77
jmp 0x1400dd6ae
mov rcx, rdi
call fcn.1400365e0
mov ecx, eax
shr ecx, 8
mov byte [rbp + 0x10070], cl
mov byte [rbp + 0x10071], al
mov ecx, dword [rsi + 0x34]
mov eax, 2
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 2
jae 0x1400dd8b4
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 2
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1400ddaad
jmp 0x1400dd70f
mov rcx, rdi
call fcn.1400365e0
mov ecx, eax
shr ecx, 0x18
mov byte [rbp + 0x10070], cl
mov ecx, eax
shr ecx, 0x10
mov byte [rbp + 0x10071], cl
mov ecx, eax
shr ecx, 8
mov byte [rbp + 0x10072], cl
mov byte [rbp + 0x10073], al
mov ecx, dword [rsi + 0x34]
mov eax, 4
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 4
jae 0x1400dd920
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 4
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1400ddae3
jmp 0x1400dd1e7
mov rcx, rdi
call fcn.1400366d0
mov rdx, rax
mov rcx, rax
shr rcx, 0x38
mov byte [rsp + 0x48], cl
mov rcx, rax
shr rcx, 0x30
mov byte [rsp + 0x49], cl
mov rcx, rax
shr rcx, 0x28
mov byte [rsp + 0x4a], cl
mov rcx, rax
shr rcx, 0x20
mov byte [rsp + 0x4b], cl
mov rcx, rax
shr rcx, 0x18
mov byte [rsp + 0x4c], cl
shr rax, 0x10
mov byte [rsp + 0x4d], al
mov rax, rdx
shr rax, 8
mov byte [rsp + 0x4e], al
mov byte [rsp + 0x4f], dl
mov ecx, dword [rsi + 0x34]
mov eax, 8
sub rax, rcx
add qword [rsi + 0x18], rax
cmp ecx, 8
jae 0x1400dd9b6
mov rcx, qword [rsi + 0x38]
call fcn.1400df720
mov ecx, 8
call fcn.1400df764
mov qword [rsi + 0x38], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x1400dd9d5
mov dword [rsi + 0x34], 8
mov rax, qword [rsp + 0x48]
mov qword [rcx], rax
mov al, 1
jmp 0x1400dcea0
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3
mov ecx, 8
call fcn.1400df728
mov qword [rsp + 0x58], rax
lea rdx, str.Out_of_memory
mov rcx, rax
call fcn.1400acd80
nop
mov qword [rsp + 0x48], rax
lea rdx, [0x14017fb38]
lea rcx, [rsp + 0x48]
call fcn.1400e1c98
int3