Function at 0x61cc1b80
Capabilities:
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
mov rbx, rcx
lea rcx, [0x61cd7080]
mov r13, rdx
call sym.libintl_8.dll_libintl_recursive_lock_lock_func
test eax, eax
jne 0x61cc23dc
mov esi, dword [rbx + 8]
test esi, esi
jne 0x61cc1e26
mov rcx, qword [rbx]
mov dword [rbx + 8], 0xffffffff
mov qword [rbx + 0x10], 0
test rcx, rcx
je 0x61cc1e1f
mov edx, 0x8000
call sub.msvcrt.dll__open
cmp eax, 0xffffffff
mov r12d, eax
je 0x61cc1e1f
lea rdx, [rbp + 0x50]
mov ecx, eax
call qword [sym.imp.msvcrt.dll__fstat64]
test eax, eax
jne 0x61cc1e17
mov r10, qword [rbp + 0x68]
cmp r10, 0x2f
mov qword [rbp + 0x28], r10
jbe 0x61cc1e17
mov rcx, r10
call sub.msvcrt.dll_malloc
test rax, rax
mov rsi, rax
je 0x61cc1e17
mov rdi, qword [rbp + 0x28]
mov r14, rax
mov r8d, edi
mov rdx, r14
mov ecx, r12d
call sub.msvcrt.dll__read
test eax, eax
jle 0x61cc1e00
movsxd r8, eax
add r14, r8
sub rdi, r8
test rdi, rdi
jne 0x61cc1c32
mov ecx, r12d
call sub.msvcrt.dll__close
mov eax, dword [rsi]
cmp eax, 0x950412de
setne dil
cmp eax, 0xde120495
jne 0x61cc2b41
mov ecx, 0xf8
call sub.msvcrt.dll_malloc
test rax, rax
mov r15, rax
je 0x61cc1e1f
mov r10, qword [rbp + 0x28]
movzx edi, dil
mov qword [rbx + 0x10], rax
test edi, edi
mov qword [rax], rsi
mov dword [rax + 8], 0
mov dword [rax + 0x18], edi
mov qword [rax + 0x20], 0
mov qword [rax + 0x10], r10
mov eax, dword [rsi + 4]
je 0x61cc1cb8
bswap eax
cmp eax, 0x1ffff
ja 0x61cc1e60
test edi, edi
mov edx, dword [rsi + 8]
je 0x61cc1f80
bswap edx
mov r9d, dword [rsi + 0x14]
mov dword [r15 + 0x28], edx
mov edx, dword [rsi + 0xc]
bswap r9d
bswap edx
mov dword [r15 + 0x58], r9d
mov edx, edx
add rdx, rsi
mov qword [r15 + 0x30], rdx
mov edx, dword [rsi + 0x10]
bswap edx
mov edx, edx
add rdx, rsi
cmp r9d, 2
mov qword [r15 + 0x38], rdx
jbe 0x61cc1f70
mov edx, dword [rsi + 0x18]
bswap edx
mov edx, edx
add rdx, rsi
test ax, ax
mov qword [r15 + 0x60], rdx
mov dword [r15 + 0x68], edi
je 0x61cc1e80
test rdx, rdx
je 0x61cc1e60
test edi, edi
mov r10d, dword [rsi + 0x24]
je 0x61cc1fb0
bswap r10d
test r10d, r10d
mov dword [rbp + 0x28], r10d
je 0x61cc1e80
mov edx, dword [rsi + 0x1c]
mov eax, dword [rsi + 0x20]
bswap edx
bswap eax
mov dword [rbp + 0x20], edx
mov eax, eax
lea rcx, [rsi + rax]
mov eax, dword [rbp + 0x20]
lea rax, [rax*8 + 0x1e]
shr rax, 4
shl rax, 4
call fcn.61cd1480
mov r11d, dword [rbp + 0x20]
sub rsp, rax
lea r14, [rsp + 0x30]
test r11d, r11d
je 0x61cc1fcd
xor r8d, r8d
lea r12, [0x61cda02a]
mov r10d, dword [rbp + 0x20]
jmp 0x61cc1deb
mov eax, dword [rcx + 4]
mov edx, dword [rcx]
bswap eax
bswap edx
mov eax, eax
add rax, rsi
test edx, edx
je 0x61cc1e60
lea edx, [rdx - 1]
cmp byte [rax + rdx], 0
jne 0x61cc1e60
movzx edx, byte [rax]
cmp dl, 0x50
je 0x61cc1ef0
cmp dl, 0x49
mov edx, 0
jne 0x61cc1dd6
cmp byte [rax + 1], 0
cmove rdx, r12
mov qword [r14 + r8*8], rdx
add r8, 1
add rcx, 8
cmp r10d, r8d
jbe 0x61cc1fcd
test edi, edi
jne 0x61cc1d95
mov eax, dword [rcx + 4]
mov edx, dword [rcx]
add rax, rsi
jmp 0x61cc1da3
cmp eax, 0xffffffff
jne 0x61cc1e17
mov rdx, qword [sym.imp.msvcrt.dll__errno]
call rdx
cmp dword [rax], 4
je 0x61cc1c51
mov ecx, r12d
call sub.msvcrt.dll__close
mov dword [rbx + 8], 1
lea rcx, [0x61cd7080]
call sym.libintl_8.dll_libintl_recursive_lock_unlock_func
test eax, eax
jne 0x61cc23dc
lea rsp, [rbp + 0x98]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rsi, qword [rbp + 0x18]
mov r15, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x20]
nop word [rax + rax]
mov rcx, rsi
call fcn.61cd60f0
mov rcx, r15
call fcn.61cd60f0
mov qword [rbx + 0x10], 0
jmp 0x61cc1e1f
mov dword [r15 + 0x40], 0
mov qword [r15 + 0x48], 0
mov qword [r15 + 0x50], 0
lea rcx, [r15 + 0x80]
mov qword [r15 + 0x70], 0
mov qword [r15 + 0x78], 0
call sym.libintl_8.dll_libintl_rwlock_init_func
lea rax, [rbp + 0x38]
lea r8, [0x61cda02a]
mov rdx, r13
mov rcx, rbx
xor r9d, r9d
mov qword [rsp + 0x20], rax
call sym.libintl_8.dll__nl_find_msg
lea rdx, [r15 + 0xe8]
lea r8, [r15 + 0xf0]
mov rcx, rax
call sym.libintl_8.dll_libintl_gettext_extract_plural
jmp 0x61cc1e1f
xor edx, edx
cmp byte [rax + 1], 0x52
jne 0x61cc1dd6
cmp byte [rax + 2], 0x49
jne 0x61cc1dd6
movzx r11d, byte [rax + 3]
cmp r11b, 0x64
sete byte [rbp + 0x18]
cmp r11b, 0x69
sete byte [rbp + 0x10]
je 0x61cc1f3f
cmp byte [rbp + 0x18], 0
jne 0x61cc1f3f
cmp r11b, 0x6f
je 0x61cc1f3f
cmp r11b, 0x75
je 0x61cc1f3f
cmp r11b, 0x78
je 0x61cc1f3f
cmp r11b, 0x58
jne 0x61cc1dd6
movzx edx, byte [rax + 4]
cmp dl, 0x38
je 0x61cc2490
cmp dl, 0x31
je 0x61cc24f4
cmp dl, 0x33
jne 0x61cc256a
cmp byte [rax + 5], 0x32
je 0x61cc25dd
xor edx, edx
jmp 0x61cc1dd6
xor edx, edx
jmp 0x61cc1d0f
mov dword [r15 + 0x28], edx
mov edx, dword [rsi + 0xc]
mov r9d, dword [rsi + 0x14]
add rdx, rsi
mov dword [r15 + 0x58], r9d
mov qword [r15 + 0x30], rdx
mov edx, dword [rsi + 0x10]
add rdx, rsi
cmp r9d, 2
mov qword [r15 + 0x38], rdx
jbe 0x61cc1f70
mov edx, dword [rsi + 0x18]
jmp 0x61cc1d0c
test r10d, r10d
mov dword [rbp + 0x28], r10d
je 0x61cc1e80
mov r10d, dword [rsi + 0x1c]
mov eax, dword [rsi + 0x20]
mov dword [rbp + 0x20], r10d
jmp 0x61cc1d54
test edi, edi
je 0x61cc22a4
mov eax, dword [rsi + 0x28]
bswap eax
mov eax, eax
add rax, rsi
mov qword [rbp - 8], rax
mov eax, dword [rsi + 0x2c]
bswap eax
mov eax, eax
add rax, rsi
mov r9d, r9d
mov r12d, dword [rbp + 0x20]
shl r9, 2
mov qword [rbp], rax
xor eax, eax
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x10], r9
mov r15, rax
mov qword [rbp + 0x10], r9
mov dword [rbp + 0xc], 0
mov qword [rbp + 0x18], rsi
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x28], r13
xor r13d, r13d
test edi, edi
je 0x61cc2270
test r13d, r13d
jne 0x61cc228d
mov r10, qword [rbp - 8]
mov esi, dword [r10 + r15*4]
bswap esi
mov esi, esi
add rsi, qword [rbp + 0x18]
mov eax, dword [rsi + 8]
bswap eax
cmp eax, 0xffffffff
setne al
test al, al
je 0x61cc20a1
add rsi, 4
xor ebx, ebx
jmp 0x61cc2093
mov edx, dword [rsi]
mov eax, dword [rsi + 4]
bswap edx
bswap eax
mov edx, edx
add rbx, rdx
cmp eax, 0xffffffff
je 0x61cc20a3
cmp eax, r12d
jae 0x61cc1e4e
mov eax, eax
mov rcx, qword [r14 + rax*8]
test rcx, rcx
je 0x61cc20ca
call sub.msvcrt.dll_strlen
add rsi, 8
add rbx, rax
test edi, edi
jne 0x61cc2060
mov eax, dword [rsi]
add rbx, rax
mov eax, dword [rsi + 4]
jmp 0x61cc206e
xor ebx, ebx
mov qword [rbp + r13*8 + 0x40], rbx
add r13, 1
cmp r13, 2
jne 0x61cc2023
mov rax, qword [rbp + 0x48]
add qword [rbp + 0x10], rax
mov rdx, qword [rbp + 0x40]
add dword [rbp + 0xc], 1
add qword [rbp + 0x10], rdx
add r15, 1
cmp dword [rbp + 0x28], r15d
ja 0x61cc2020
cmp dword [rbp + 0xc], 0
mov rsi, qword [rbp + 0x18]
mov r15, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x20]
mov r13, qword [rbp - 0x28]
je 0x61cc1e80
mov eax, dword [rbp + 0xc]
mov rcx, qword [rbp + 0x10]
add eax, eax
shl rax, 4
add rcx, rax
call sub.msvcrt.dll_malloc
test rax, rax
mov qword [rbp + 0x20], rax
je 0x61cc1e60
mov qword [r15 + 0x20], rax
mov eax, dword [rbp + 0xc]
mov rcx, qword [rbp + 0x20]
mov qword [rbp - 0x50], r13
mov r13, r14
mov dword [rbp - 0x20], 0
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x48], rbx
shl rax, 4
add rcx, rax
add rax, rcx
mov qword [rbp - 0x30], rcx
mov r12, rax
mov qword [rbp - 0x28], rax
xor eax, eax
add r12, qword [rbp - 0x10]
mov r14, rax
mov qword [rbp - 0x10], rsi
mov rax, qword [rbp - 0x40]
mov r8, qword [rbp]
xor ecx, ecx
mov r9, qword [rbp - 8]
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x61cc23c0
test ecx, ecx
jne 0x61cc24eb
mov eax, dword [r9 + r14*4]
bswap eax
mov edx, eax
add rdx, qword [rbp - 0x10]
mov eax, dword [rdx + 8]
bswap eax
cmp eax, 0xffffffff
setne al
test al, al
je 0x61cc21c0
add rdx, 4
jmp 0x61cc21b2
mov eax, eax
cmp qword [r13 + rax*8], 0
je 0x61cc22be
add rdx, 8
test ebx, ebx
mov eax, dword [rdx + 4]
je 0x61cc21bb
bswap eax
cmp eax, 0xffffffff
jne 0x61cc21a0
add ecx, 1
cmp ecx, 2
jne 0x61cc2168
mov r10d, dword [rbp - 0x20]
mov dword [rbp + 0x18], 0
mov qword [rbp - 0x18], r14
shl r10, 4
mov qword [rbp - 0x38], r10
test ebx, ebx
mov r10, qword [rbp - 0x18]
je 0x61cc2472
cmp dword [rbp + 0x18], 0
jne 0x61cc255d
mov rdx, qword [rbp - 8]
mov eax, dword [rdx + r10*4]
bswap eax
mov r9d, eax
add r9, qword [rbp - 0x10]
mov eax, dword [r9]
bswap eax
mov eax, eax
mov rsi, qword [rbp - 0x10]
mov r10d, dword [rbp + 0x18]
mov r15, qword [rbp + 0x20]
add rsi, rax
test r10d, r10d
cmovne r15, qword [rbp - 0x30]
add r15, qword [rbp - 0x38]
test ebx, ebx
mov qword [rbp + 0x10], r15
je 0x61cc244f
mov eax, dword [r9 + 8]
bswap eax
add eax, 1
jne 0x61cc23e1
mov eax, dword [r9 + 4]
bswap eax
mov eax, eax
mov r10, qword [rbp + 0x10]
mov qword [r10], rax
mov qword [r10 + 8], rsi
add dword [rbp + 0x18], 1
cmp dword [rbp + 0x18], 2
je 0x61cc22b6
mov rax, qword [rbp - 0x40]
mov ebx, dword [rax + 0x18]
jmp 0x61cc21df
test r13d, r13d
jne 0x61cc229a
mov r10, qword [rbp - 8]
mov esi, dword [r10 + r15*4]
add rsi, qword [rbp + 0x18]
cmp dword [rsi + 8], 0xffffffff
setne al
jmp 0x61cc204f
mov r10, qword [rbp]
mov esi, dword [r10 + r15*4]
jmp 0x61cc203c
mov r10, qword [rbp]
mov esi, dword [r10 + r15*4]
jmp 0x61cc227d
mov eax, dword [rsi + 0x28]
add rax, rsi
mov qword [rbp - 8], rax
mov eax, dword [rsi + 0x2c]
jmp 0x61cc1fea
add dword [rbp - 0x20], 1
mov r14, qword [rbp - 0x18]
add r14, 1
cmp dword [rbp + 0x28], r14d
ja 0x61cc2157
mov r10d, dword [rbp - 0x20]
cmp dword [rbp + 0xc], r10d
mov r15, qword [rbp - 0x40]
mov rbx, qword [rbp - 0x48]
mov r13, qword [rbp - 0x50]
jne 0x61cc23dc
mov eax, dword [r15 + 0x58]
test eax, eax
je 0x61cc231e
lea eax, [rax - 1]
mov r9d, dword [r15 + 0x68]
mov rcx, qword [r15 + 0x60]
lea r8, [rax*4 + 4]
xor eax, eax
test r9d, r9d
mov edx, dword [rcx + rax]
je 0x61cc230d
bswap edx
mov r10, qword [rbp - 0x28]
mov dword [r10 + rax], edx
add rax, 4
cmp rax, r8
jne 0x61cc2303
mov rdi, qword [rbp + 0x20]
mov r12, qword [rbp - 0x28]
xor esi, esi
mov rcx, qword [rdi + 8]
call sym.libintl_8.dll_libintl_hash_string
mov r8d, dword [r15 + 0x58]
xor edx, edx
mov r9d, eax
div r8d
lea r10d, [r8 - 2]
mov eax, r9d
mov ecx, edx
xor edx, edx
div r10d
lea r9d, [rdx + 1]
mov edx, r8d
mov r10d, r9d
sub edx, r9d
sub r10d, r8d
jmp 0x61cc2370
lea eax, [rcx + r10]
lea r8d, [rcx + r9]
cmp ecx, edx
mov ecx, eax
cmovb ecx, r8d
mov eax, ecx
lea rax, [r12 + rax*4]
mov r8d, dword [rax]
test r8d, r8d
jne 0x61cc2360
mov edx, dword [r15 + 0x28]
add rdi, 0x10
lea edx, [rsi + rdx + 1]
add esi, 1
cmp esi, dword [rbp + 0xc]
mov dword [rax], edx
jne 0x61cc2328
mov r10, qword [rbp - 0x30]
mov rax, qword [rbp + 0x20]
mov dword [r15 + 0x40], esi
mov dword [r15 + 0x68], 0
mov qword [r15 + 0x50], r10
mov r10, qword [rbp - 0x28]
mov qword [r15 + 0x48], rax
mov qword [r15 + 0x60], r10
jmp 0x61cc1e98
test ecx, ecx
jne 0x61cc24e2
mov edx, dword [r9 + r14*4]
add rdx, qword [rbp - 0x10]
cmp dword [rdx + 8], 0xffffffff
setne al
jmp 0x61cc218f
call sub.msvcrt.dll_abort
mov r10, qword [rbp + 0x10]
lea rdi, [r9 + 4]
mov qword [r10 + 8], r12
jmp 0x61cc242a
mov r14d, dword [rdi + 4]
bswap eax
bswap r14d
test eax, eax
jne 0x61cc2436
cmp r14d, 0xffffffff
je 0x61cc245f
mov r14d, r14d
add rdi, 8
mov r15, qword [r13 + r14*8]
mov rcx, r15
call sub.msvcrt.dll_strlen
mov r14, rax
mov rcx, r12
mov r8, rax
mov rdx, r15
add r12, r14
call sub.msvcrt.dll_memcpy
test ebx, ebx
mov eax, dword [rdi]
jne 0x61cc23ef
mov r14d, dword [rdi + 4]
jmp 0x61cc23f8
mov r15d, eax
mov rdx, rsi
mov rcx, r12
mov r8, r15
add r12, r15
add rsi, r15
call sub.msvcrt.dll_memcpy
jmp 0x61cc23fc
cmp dword [r9 + 8], 0xffffffff
jne 0x61cc23e1
mov eax, dword [r9 + 4]
jmp 0x61cc224b
mov r10, qword [rbp + 0x10]
mov rax, r12
sub rax, qword [r10 + 8]
mov qword [r10], rax
jmp 0x61cc2256
cmp dword [rbp + 0x18], 0
jne 0x61cc2550
mov rax, qword [rbp - 8]
mov r9d, dword [rax + r10*4]
add r9, qword [rbp - 0x10]
mov eax, dword [r9]
jmp 0x61cc220d
cmp byte [rax + 5], 0
jne 0x61cc1f68
cmp byte [rbp + 0x18], 0
jne 0x61cc25d1
cmp byte [rbp + 0x10], 0
jne 0x61cc262f
cmp r11b, 0x6f
je 0x61cc2677
cmp r11b, 0x75
je 0x61cc266b
cmp r11b, 0x78
je 0x61cc2b57
cmp r11b, 0x58
jne 0x61cc23dc
lea rdx, [0x61cda00a]
jmp 0x61cc1dd6
mov edx, dword [r8 + r14*4]
jmp 0x61cc23cc
mov eax, dword [r8 + r14*4]
jmp 0x61cc217c
cmp byte [rax + 5], 0x36
jne 0x61cc1f68
cmp byte [rax + 6], 0
jne 0x61cc1f68
cmp byte [rbp + 0x18], 0
jne 0x61cc265f
cmp byte [rbp + 0x10], 0
jne 0x61cc2653
cmp r11b, 0x6f
je 0x61cc2647
cmp r11b, 0x75
je 0x61cc263b
cmp r11b, 0x78
je 0x61cc2d7c
cmp r11b, 0x58
jne 0x61cc23dc
lea rdx, [0x61cda00a]
jmp 0x61cc1dd6
mov rax, qword [rbp]
mov r9d, dword [rax + r10*4]
jmp 0x61cc2484
mov rdx, qword [rbp]
mov eax, dword [rdx + r10*4]
jmp 0x61cc21fd
cmp dl, 0x36
jne 0x61cc26bf
xor edx, edx
cmp byte [rax + 5], 0x34
jne 0x61cc1dd6
cmp byte [rax + 6], 0
jne 0x61cc1dd6
cmp byte [rbp + 0x18], 0
jne 0x61cc26b3
cmp byte [rbp + 0x10], 0
jne 0x61cc26a7
cmp r11b, 0x6f
je 0x61cc269b
cmp r11b, 0x75
je 0x61cc268f
cmp r11b, 0x78
je 0x61cc2683
cmp r11b, 0x58
jne 0x61cc23dc
lea rdx, str.I64X
jmp 0x61cc1dd6
lea rdx, str.diouxX
jmp 0x61cc1dd6
cmp byte [rax + 6], 0
jne 0x61cc1f68
cmp byte [rbp + 0x18], 0
jne 0x61cc2b87
cmp byte [rbp + 0x10], 0
jne 0x61cc2b7b
cmp r11b, 0x6f
je 0x61cc2b6f
cmp r11b, 0x75
je 0x61cc2b63
cmp r11b, 0x78
je 0x61cc2d88
cmp r11b, 0x58
jne 0x61cc23dc
lea rdx, [0x61cda00a]
jmp 0x61cc1dd6
lea rdx, [0x61cda002]
jmp 0x61cc1dd6
lea rdx, [0x61cda006]
jmp 0x61cc1dd6
lea rdx, [0x61cda004]
jmp 0x61cc1dd6
lea rdx, [0x61cda002]
jmp 0xffffffffeb191dd6
invalid
invalid
and al, 0x20
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x88
mov dword [rsp + 0x20], 0
mov rax, qword [rsp + 0xb0]
mov al, 0
add byte [rax], al
add rax, 0x7c
mov ecx, 1
imul rcx, rcx, 0
lea rcx, [rsp + rcx + 0x60]
add byte [rax + 0x6b], cl
leave
add byte [rax - 0x73], cl
or al, 0x60
mov r8d, 4
add al, 0
add byte [rax], al
mov rdx, rax
call fcn.61cc3045
mov rax, qword [rsp + 0xb0]
add rax, 0xb8
add byte [rax], al
mov ecx, 1
imul rcx, rcx, 4
lea rcx, [rsp + rcx + 0x60]
lea ecx, [rsp + rcx + 0x60]
mov r8d, 4
mov rdx, rax
call fcn.61cc3045
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x58], 0
xor eax, eax
cmp eax, 1
je 0x61cc2883
mov eax, dword [rsp + 0x98]
mov rcx, qword [rsp + 0x38]
add rcx, 8
sub rcx, qword [rsp + 0x90]
sub rax, rcx
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x38]
inc rax
mov r9d, 8
lea r8, [rsp + 0x60]
mov edx, dword [rsp + 0x44]
mov rcx, rax
call fcn.61cc416d
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0
jne 0x61cc2753
jmp 0x61cc2883
mov rax, qword [rsp + 0x38]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax]
call fcn.61cc40d9
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x38]
add rax, 8
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xb0]
mov ecx, dword [rcx + 0x3c]
cmp dword [rax], ecx
jne 0x61cc2800
cmp qword [rsp + 0x30], 0
jne 0x61cc2800
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 8]
add rax, 0x10
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
mov edx, eax
mov ecx, 0x40
mov rax, qword [rsp + 0xa8]
call qword [rax + 0x68]
mov qword [rsp + 0x30], rax
mov r8d, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x30]
call fcn.61cc3045
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x20]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
jmp 0x61cc287e
cmp qword [rsp + 0x30], 0
je 0x61cc287e
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x20]
add ecx, eax
mov eax, ecx
cmp eax, dword [rsp + 0x28]
jbe 0x61cc284d
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x28]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov r8d, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x50]
mov rcx, rax
call fcn.61cc3045
jmp 0x61cc2883
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov r8d, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x50]
mov rcx, rax
call fcn.61cc3045
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x20]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
jmp 0x61cc26f8
cmp qword [rsp + 0x30], 0
jne 0x61cc288f
xor al, al
jmp 0x61cc28ed
mov rax, qword [rsp + 0x30]
add rax, 0x10
mov qword [rsp + 0x70], rax
mov r9, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x58]
mov r8d, dword [rax + 4]
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 8]
mov rcx, qword [rsp + 0x70]
call fcn.61cc29a1
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x30]
mov qword [rax], rcx
cmp dword [rsp + 0x20], 0
jbe 0x61cc28e1
mov dword [rsp + 0x40], 1
jmp 0x61cc28e9
mov dword [rsp + 0x40], 0
mov al, byte [rsp + 0x40]
add rsp, 0x88
ret
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0
jmp 0x61cc2b59
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
and al, 0x20
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0xee4]
cmp dword [rsp + 0x20], eax
add byte [rcx], bh
and al, 0x20
jae 0x61cc2be4
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x8a
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
mov r8, qword [rsp + 0x60]
mov rdx, rax
mov edx, eax
mov rcx, qword [rsp + 0x40]
call fcn.61cc4071
cmp eax, dword [rsp + 0x58]
jne 0x61cc2bdf
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x8a
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x28]
mov eax, dword [rdx + rax + 0x86]
mov dword [rcx], eax
movsxd rax, dword [rsp + 0x20]
imul rax, rax, 0x8a
mov rcx, qword [rsp + 0x28]
mov eax, dword [rcx + rax + 0x82]
mov rcx, qword [rsp + 0x48]
lea rax, [rcx + rax + 0xee4]
jmp 0x61cc2be6
jmp 0x61cc2b4f
xor eax, eax
add rsp, 0x38
ret
xor eax, eax
cmp eax, 1
je 0x61cc2da0
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x38]
mov eax, dword [rcx + rax*4]
mov rcx, qword [rsp + 0x280]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x40], rax
mov edx, 0x208
lea rcx, [rsp + 0x60]
call fcn.61cc31d5
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
call fcn.61cc3231
mov rdx, qword [rsp + 0x290]
lea rcx, [rsp + 0x60]
call fcn.61cc2db1
mov dword [rsp + 0x24], eax
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x48]
movzx eax, word [rcx + rax*2]
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx + rax*4]
mov rcx, qword [rsp + 0x280]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x58], rax
pop rax
mov eax, dword [rsp + 0x24]
cmp dword [rsp + 0x288], eax
jne 0x61cc2d91
mov rax, qword [rsp + 0x58]
jmp 0x61cc2da0
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
jmp 0x61cc2cf5
add rsp, 0x278
ret