Function at 0x4474f1
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x758
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x90], rdx
mov dword [rsp + 0xcc], r8d
mov dword [rsp + 0xc8], r9d
movsxd rdx, dword [rcx + 0x1d0]
mov rax, qword [rcx + 0x1e0]
mov rcx, qword [rax + rdx*8]
mov qword [rsp + 0x48], rcx
mov r15d, dword [rcx + 0x14]
lea edx, [r15*8]
lea ebx, [r15 + r15]
mov dword [rsp + 0x78], ebx
test ebx, ebx
jle 0x448935
lea r8d, [rbx - 1]
add r8, 2
mov eax, 1
mov rsi, r8
sub rsi, rax
and esi, 7
je 0x4486f5
cmp rsi, 1
je 0x447621
cmp rsi, 2
je 0x447609
cmp rsi, 3
je 0x4475f1
cmp rsi, 4
je 0x4475d7
cmp rsi, 5
je 0x4475bd
cmp rsi, 6
jne 0x448299
mov rbp, qword [rsp + 0x90]
mov r10d, dword [rbp + rax*4 - 4]
test r10d, r10d
jne 0x44827c
add rax, 1
mov r9, qword [rsp + 0x90]
mov r12d, dword [r9 + rax*4 - 4]
test r12d, r12d
jne 0x44827c
add rax, 1
mov r13, qword [rsp + 0x90]
mov r14d, dword [r13 + rax*4 - 4]
test r14d, r14d
jne 0x44827c
add rax, 1
mov rcx, qword [rsp + 0x90]
mov ebx, dword [rcx + rax*4 - 4]
test ebx, ebx
jne 0x44827c
add rax, 1
mov rsi, qword [rsp + 0x90]
mov edi, dword [rsi + rax*4 - 4]
test edi, edi
jne 0x44827c
add rax, 1
mov r11, qword [rsp + 0x90]
mov ebp, dword [r11 + rax*4 - 4]
test ebp, ebp
jne 0x44827c
mov edi, eax
add rax, 1
mov r9, r11
cmp r8, rax
je 0x4476bd
mov r10d, dword [r9 + rax*4 - 4]
test r10d, r10d
jne 0x44827c
mov r12d, dword [r9 + rax*4]
test r12d, r12d
jne 0x44827c
mov r13d, dword [r9 + rax*4 + 4]
test r13d, r13d
jne 0x44827c
mov r14d, dword [r9 + rax*4 + 8]
test r14d, r14d
jne 0x44827c
mov ecx, dword [r9 + rax*4 + 0xc]
test ecx, ecx
jne 0x44827c
mov ebx, dword [r9 + rax*4 + 0x10]
test ebx, ebx
jne 0x44827c
mov esi, dword [r9 + rax*4 + 0x14]
test esi, esi
jne 0x44827c
lea rdi, [rax + 7]
mov r11d, dword [r9 + rax*4 + 0x18]
test r11d, r11d
jne 0x44827c
add rax, 8
cmp r8, rax
jne 0x447644
mov r8, qword [rsp + 0x48]
mov r13d, dword [r8 + 0x18]
cmp edi, dword [rsp + 0x78]
je 0x4482b3
mov r10d, r13d
shr r10d, 0x12
and r10d, 0x1f
add r10d, 4
mov r12d, r10d
shl r12d, 8
cmp r10d, 0x1b
mov r14d, 0x1b00
cmovle r14d, r12d
mov dword [rsp + 0x7c], r14d
mov rbx, qword [rsp + 0xa8]
mov esi, dword [rbx + 0x14]
mov dword [rsp + 0x38], esi
and esi, 0x10000
mov dword [rsp + 0x74], esi
jne 0x447acb
mov dword [rsp + 0x8c], 0
lea r12, [rsp + 0x150]
xor ebx, ebx
mov ecx, 0xc0
mov rdi, r12
mov rax, rbx
rep stosq qword [rdi], rax
movsxd rbp, edx
mov qword [rsp + 0x60], rbp
mov rcx, rbp
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xe0], rax
mov rcx, rbp
call sub.msvcrt.dll_malloc
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xe8], rax
mov rcx, rbp
call sub.msvcrt.dll_malloc
mov qword [rsp + 0xb0], rax
mov rdx, qword [rsp + 0x48]
mov r8d, dword [rdx + 0xbc]
cmp r8d, 1
jle 0x44779c
and r13d, 8
jne 0x448399
mov r9d, dword [rsp + 0xcc]
test r9d, r9d
mov qword [rsp + 0xa0], 0
jne 0x447b47
cmp r8d, 6
jg 0x447b47
test r8d, r8d
jle 0x44871c
mov r10, qword [rsp + 0xa0]
test r10, r10
mov r13, qword [rsp + 0x90]
cmovne r13, r10
mov qword [rsp + 0x80], r13
lea esi, [r15 - 1]
lea rcx, [rsi*8 + 8]
mov qword [rsp + 0xc0], rcx
mov dword [rsp + 0x88], 0
mov dword [rsp + 0x9c], 0xffffffff
mov qword [rsp + 0x50], 0
mov ebx, dword [rsp + 0x88]
test ebx, ebx
je 0x448224
mov r11, qword [rsp + 0x48]
mov ebp, dword [r11 + 0xc0]
mov r14d, dword [r11 + 0xc4]
mov dword [rsp + 0x98], r14d
test r14d, r14d
je 0x447f13
lea eax, [r14 - 1]
and eax, ebp
or eax, r14d
cmp eax, ebp
je 0x44825e
movsxd rdi, eax
lea r8, [rdi + rdi*8]
lea rsi, [rdi + r8*2]
mov dword [rsp + 0x98], eax
mov r13, qword [rsp + 0x48]
add rsi, qword [r13 + 0x828]
lea rcx, [rsi + 2]
call sub.msvcrt.dll_strlen
mov dword [rsp + 0x70], eax
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0x58], rcx
mov ebx, dword [rsp + 0x74]
test ebx, ebx
jne 0x447c61
cmp byte [rsi], 0
je 0x4478bc
mov r11d, dword [rsp + 0x8c]
test r11d, r11d
je 0x447c61
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_memcpy
mov ecx, 0xc0
mov rdi, r12
xor eax, eax
rep stosq qword [rdi], rax
mov r10d, dword [rsp + 0x70]
test r10d, r10d
jle 0x447c86
cmp r15d, 0x800
mov ebx, 0x800
cmovle ebx, r15d
mov dword [rsp + 0x38], ebx
sub r10d, 1
mov qword [rsp + 0x40], r10
mov r13, qword [rsp + 0x58]
xor r11d, r11d
lea rax, [rsp + 0xf0]
mov rbp, rax
mov r14, r11
jmp 0x447a75
not r8d
and r8d, 1
mov rdi, qword [rsp + r8*8 + 0xe0]
mov dword [rsp + 0x20], 0xffffffff
mov r9, rbp
mov r8d, dword [rsp + 0x38]
mov rdx, rdi
mov rcx, r13
call fcn.00444ba5
test r14, r14
je 0x447b5c
mov qword [rsp + 0x100], 0
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], 0
lea rax, [r14 + r14*2]
shl rax, 5
mov r9, qword [rsp + 0xf0]
mov qword [r12 + rax], r9
mov r10, qword [rsp + 0xf8]
mov qword [r12 + rax + 8], r10
mov qword [r12 + rax + 0x10], 0
mov qword [r12 + rax + 0x18], 0
mov qword [r12 + rax + 0x20], 0
mov qword [r12 + rax + 0x28], 0
mov qword [r12 + rax + 0x30], 0
mov qword [r12 + rax + 0x38], 0
mov qword [r12 + rax + 0x40], 0
mov qword [r12 + rax + 0x48], 0
mov rdx, qword [rsp + 0x140]
mov qword [r12 + rax + 0x50], rdx
mov r11, qword [rsp + 0x148]
mov qword [r12 + rax + 0x58], r11
mov dword [rsp + 0x20], 1
mov r9, rbp
mov r8d, r15d
mov rdx, rdi
mov rcx, r13
call fcn.00444ba5
add ebx, 1
and ebx, 1
mov r13, qword [rsp + rbx*8 + 0xe0]
lea rbx, [r14 + 1]
cmp qword [rsp + 0x40], r14
je 0x447c37
mov r14, rbx
mov ebx, r14d
mov r8d, r14d
mov ecx, 0xc
mov rdi, rbp
xor eax, eax
rep stosq qword [rdi], rax
movsx r9d, byte [rsi + 1]
mov dword [rsp + 0xf4], r9d
movsx r10d, byte [rsi + r14 + 2]
mov dword [rsp + 0xf0], r10d
test r10d, r10d
jns 0x447926
mov rdx, qword [rsp + 0x48]
test byte [rdx + 0x18], 0x20
jne 0x447926
mov dword [rsp + 0xf0], 0xfffffffd
jmp 0x447926
mov r11d, r13d
and r11d, 0x10
cmp r11d, 1
sbb r8d, r8d
mov eax, r8d
and eax, 1
mov dword [rsp + 0x8c], eax
add r8d, 1
mov dword [rsp + 0x74], r8d
jmp 0x447723
mov r15d, dword [rsp + 0x70]
mov r12, qword [rsp + 0x50]
cmp qword [rsp + 0x38], 0
jne 0x447b30
mov r14, qword [rsp + 0x48]
mov edi, dword [r14 + 0x14]
mov r8d, dword [r14 + 0x188]
imul r8d, edi
sub dword [r14 + 0x180], r8d
imul edi, dword [r14 + 0x18c]
sub dword [r14 + 0x184], edi
mov rdx, qword [rsp + 0x48]
mov r8d, dword [rdx + 0xbc]
mov dword [rsp + 0xcc], 1
mov r9, qword [rsp + 0x48]
mov qword [r9 + 0xc0], 0
jmp 0x4477c3
mov rcx, rbp
call fcn.00444a20
mov r14, qword [rsp + 0xf0]
mov qword [r12], r14
mov r11, qword [rsp + 0xf8]
mov qword [r12 + 8], r11
mov r8, qword [rsp + 0x100]
mov qword [r12 + 0x10], r8
mov rcx, qword [rsp + 0x108]
mov qword [r12 + 0x18], rcx
mov rax, qword [rsp + 0x110]
mov qword [r12 + 0x20], rax
mov r9, qword [rsp + 0x118]
mov qword [r12 + 0x28], r9
mov r10, qword [rsp + 0x120]
mov qword [r12 + 0x30], r10
mov rdx, qword [rsp + 0x128]
mov qword [r12 + 0x38], rdx
mov r14, qword [rsp + 0x130]
mov qword [r12 + 0x40], r14
mov r11, qword [rsp + 0x138]
mov qword [r12 + 0x48], r11
mov r8, qword [rsp + 0x140]
mov qword [r12 + 0x50], r8
mov rcx, qword [rsp + 0x148]
mov qword [r12 + 0x58], rcx
mov dword [rsp + 0x20], 1
mov r9, rbp
mov r8d, r15d
mov rdx, rdi
mov rcx, r13
call fcn.00444ba5
add ebx, 1
and ebx, 1
mov r13, qword [rsp + rbx*8 + 0xe0]
mov ebx, 1
cmp qword [rsp + 0x40], 0
jne 0x447a72
mov r8d, dword [rsp + 0x7c]
mov edx, dword [rsp + 0x78]
mov rcx, r13
call fcn.00440a26
cmp eax, 0xffffffff
jne 0x447fef
sar dword [rsp + 0x70], 1
mov ebx, dword [rsp + 0x74]
test ebx, ebx
je 0x4478a6
cmp qword [rsp + 0x50], 0
je 0x448001
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_memcpy
jmp 0x4478d3
mov r8d, dword [rsp + 0x7c]
mov edx, dword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
call fcn.00440a26
cmp eax, 0xffffffff
jne 0x44828a
mov edx, dword [rsp + 0x70]
test edx, edx
jne 0x447c51
xor edi, edi
cmp byte [rsi + 2], 8
jle 0x447f35
add edi, 8
shl edi, 0xb
lea r14d, [rdi + rax]
cmp r14d, dword [rsp + 0x9c]
jb 0x447f4d
mov r14, qword [rsp + 0x48]
mov r8d, dword [r14 + 0xbc]
mov eax, dword [rsp + 0x88]
test eax, eax
je 0x447f25
mov esi, dword [r14 + 0xc4]
test esi, esi
je 0x448245
mov r13d, dword [r14 + 0xb8]
mov dword [rsp + 0x38], r13d
sub r13d, 1
add esi, esi
and r13d, esi
add dword [rsp + 0x88], 1
mov rbx, qword [rsp + 0x48]
mov dword [rbx + 0xc4], r13d
cmp dword [rsp + 0x88], r8d
jl 0x44781e
mov r12d, dword [rsp + 0x74]
test r12d, r12d
jne 0x447d6c
mov r9, qword [rsp + 0x48]
movsxd rcx, dword [r9 + 0xc0]
lea r10, [rcx + rcx*8]
lea rdi, [rcx + r10*2]
add rdi, qword [r9 + 0x828]
cmp byte [rdi], 0
je 0x447e59
mov edx, dword [rsp + 0x8c]
test edx, edx
jne 0x447e59
mov rax, qword [rsp + 0x48]
or dword [rax + 0x18], 0x10
mov rsi, qword [rsp + 0xa8]
cmp dword [rsi + 0x18], 3
jle 0x447e71
mov rcx, rsi
mov edi, dword [rsp + 0xc8]
mov r8d, edi
mov rdx, qword [rsp + 0x50]
call fcn.0044635e
test edi, edi
jne 0x44893c
mov r11, qword [rsp + 0x48]
movsxd rbp, dword [r11 + 0xc0]
lea rdx, [rbp + rbp*8]
lea r14, [rbp + rdx*2]
add r14, qword [r11 + 0x828]
movsx r8d, byte [r14]
mov rax, qword [rsp + 0xa8]
cmp dword [rax + 0x18], 3
jle 0x447ea1
mov rcx, qword [rsp + 0x48]
mov dword [rcx + 0xac], r8d
mov r9d, 0xffffffff
mov r8d, r15d
mov rdx, qword [rsp + 0xb0]
call fcn.004396a0
mov r15, qword [rsp + 0xa0]
test r15, r15
je 0x447e10
mov rcx, r15
call sub.msvcrt.dll_free
mov rbx, qword [rsp + 0x50]
test rbx, rbx
je 0x447e22
mov rcx, rbx
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0xb0]
add rsp, 0x758
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sub.msvcrt.dll_free
mov r11, qword [rsp + 0x48]
and dword [r11 + 0x18], 0xffffffef
mov rbp, qword [rsp + 0xa8]
cmp dword [rbp + 0x18], 3
jg 0x447ec7
mov r13d, dword [rsp + 0xc8]
test r13d, r13d
jne 0x4486d6
mov rbx, qword [rsp + 0x48]
movsxd r12, dword [rbx + 0xc0]
lea r9, [r12 + r12*8]
lea rcx, [r12 + r9*2]
add rcx, qword [rbx + 0x828]
movsx r8d, byte [rcx]
mov esi, dword [rsp + 0xcc]
test esi, esi
jne 0x447dd9
mov r13, qword [rsp + 0x48]
cmp dword [r13 + 0xac], r8d
jne 0x447dd9
jmp 0x447dfb
mov rdx, qword [rsp + 0xa0]
mov rcx, rbp
test rdx, rdx
je 0x448702
mov r14d, dword [rsp + 0xc8]
mov r8d, r14d
call fcn.0044635e
test r14d, r14d
je 0x447da6
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x90]
call sub.msvcrt.dll_memcpy
jmp 0x447da6
test ebp, ebp
je 0x448250
xor esi, esi
nop dword [rax]
jmp 0x447874
mov dword [rsp + 0x88], 1
jmp 0x447d21
add edi, 4
shl edi, 0xb
lea r14d, [rdi + rax]
cmp r14d, dword [rsp + 0x9c]
jae 0x447cce
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xb0]
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x48]
lea rax, [r8 + 0x1c8]
mov rsi, r12
mov r13d, 0x600
test r8b, 1
jne 0x44833f
test al, 2
jne 0x448368
test al, 4
jne 0x448382
mov ecx, r13d
shr ecx, 3
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
mov r10, rdi
test r13b, 4
je 0x447fac
movsd dword [rdi], dword [rsi]
mov r10, rdi
test r13b, 2
je 0x447fba
mov rdi, r10
movsw word [rdi], word [rsi]
mov r10, rdi
and r13d, 1
je 0x447fc4
mov rdi, r10
movsb byte [rdi], byte [rsi]
mov rdx, qword [rsp + 0x48]
mov r11d, dword [rsp + 0x70]
mov dword [rdx + 0xa4], r11d
mov ebp, dword [rsp + 0x98]
mov dword [rdx + 0xc0], ebp
mov dword [rsp + 0x9c], r14d
jmp 0x447cce
mov ebp, dword [rsp + 0x70]
lea edi, [rbp + rbp*2]
mov qword [rsp + 0x58], r13
jmp 0x447cac
mov rbp, qword [rsp + 0x60]
mov rcx, rbp
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x50], rax
mov r8, rbp
mov rdx, qword [rsp + 0x80]
mov r14, rax
mov rcx, rax
call sub.msvcrt.dll_memcpy
test r15d, r15d
je 0x447c6d
mov r13, r14
mov rdi, qword [rsp + 0xc0]
lea r10, [r14 + rdi]
lea r8, [rdi - 8]
shr r8, 3
add r8, 1
and r8d, 7
je 0x448154
cmp r8, 1
je 0x448131
cmp r8, 2
je 0x448117
cmp r8, 3
je 0x4480fa
cmp r8, 4
je 0x4480de
cmp r8, 5
je 0x4480c2
cmp r8, 6
je 0x4480a8
mov r9, qword [rsp + 0x50]
mov edx, dword [r9 + 4]
mov eax, dword [r9]
mov dword [rsp + 0x38], eax
sub eax, edx
mov dword [r9], eax
sar eax, 1
add eax, edx
mov dword [r9 + 4], eax
lea r13, [r9 + 8]
mov ecx, dword [r13 + 4]
mov ebx, dword [r13]
sub ebx, ecx
mov dword [r13], ebx
sar ebx, 1
add ebx, ecx
mov dword [r13 + 4], ebx
add r13, 8
mov r11d, dword [r13 + 4]
mov ebp, dword [r13]
sub ebp, r11d
mov dword [r13], ebp
sar ebp, 1
add ebp, r11d
mov dword [r13 + 4], ebp
add r13, 8
mov r14d, dword [r13 + 4]
mov edi, dword [r13]
sub edi, r14d
mov dword [r13], edi
sar edi, 1
add edi, r14d
mov dword [r13 + 4], edi
add r13, 8
mov r8d, dword [r13 + 4]
mov r9d, dword [r13]
sub r9d, r8d
mov dword [r13], r9d
sar r9d, 1
add r9d, r8d
mov dword [r13 + 4], r9d
add r13, 8
mov eax, dword [r13 + 4]
mov edx, dword [r13]
sub edx, eax
mov dword [r13], edx
sar edx, 1
add edx, eax
mov dword [r13 + 4], edx
add r13, 8
mov ecx, dword [r13 + 4]
mov ebx, dword [r13]
sub ebx, ecx
mov dword [r13], ebx
sar ebx, 1
add ebx, ecx
mov dword [r13 + 4], ebx
add r13, 8
cmp r13, r10
je 0x447c6d
mov r11d, dword [r13 + 4]
mov ebp, dword [r13]
sub ebp, r11d
mov dword [r13], ebp
sar ebp, 1
add ebp, r11d
mov dword [r13 + 4], ebp
mov r14d, dword [r13 + 0xc]
mov edi, dword [r13 + 8]
sub edi, r14d
mov dword [r13 + 8], edi
sar edi, 1
add edi, r14d
mov dword [r13 + 0xc], edi
mov r8d, dword [r13 + 0x14]
mov r9d, dword [r13 + 0x10]
sub r9d, r8d
mov dword [r13 + 0x10], r9d
sar r9d, 1
add r9d, r8d
mov dword [r13 + 0x14], r9d
mov eax, dword [r13 + 0x1c]
mov edx, dword [r13 + 0x18]
sub edx, eax
mov dword [r13 + 0x18], edx
sar edx, 1
add edx, eax
mov dword [r13 + 0x1c], edx
mov ecx, dword [r13 + 0x24]
mov ebx, dword [r13 + 0x20]
sub ebx, ecx
mov dword [r13 + 0x20], ebx
sar ebx, 1
add ebx, ecx
mov dword [r13 + 0x24], ebx
mov r11d, dword [r13 + 0x2c]
mov ebp, dword [r13 + 0x28]
sub ebp, r11d
mov dword [r13 + 0x28], ebp
sar ebp, 1
add ebp, r11d
mov dword [r13 + 0x2c], ebp
mov r14d, dword [r13 + 0x34]
mov edi, dword [r13 + 0x30]
sub edi, r14d
mov dword [r13 + 0x30], edi
sar edi, 1
add edi, r14d
mov dword [r13 + 0x34], edi
mov r8d, dword [r13 + 0x3c]
mov r9d, dword [r13 + 0x38]
sub r9d, r8d
mov dword [r13 + 0x38], r9d
sar r9d, 1
add r9d, r8d
mov dword [r13 + 0x3c], r9d
add r13, 0x40
cmp r13, r10
jne 0x448154
jmp 0x447c6d
mov rdx, qword [rsp + 0x48]
movsxd r9, dword [rdx + 0xc0]
mov dword [rsp + 0x98], r9d
lea r10, [r9 + r9*8]
lea rsi, [r9 + r10*2]
jmp 0x447874
mov r13d, 1
jmp 0x447d0d
mov r13d, 1
mov rbx, r11
jmp 0x447d1a
mov r13d, dword [r11 + 0xb8]
mov dword [rsp + 0x38], r13d
sub r13d, 1
add r14d, r14d
and r13d, r14d
mov rbx, r11
jmp 0x447d1a
mov r9, qword [rsp + 0x48]
mov r13d, dword [r9 + 0x18]
jmp 0x4476d0
mov r13d, dword [rsp + 0x70]
lea edi, [r13 + r13*2]
jmp 0x447cac
mov rdi, qword [rsp + 0x90]
mov r11d, dword [rdi]
test r11d, r11d
jne 0x44827c
mov eax, 2
jmp 0x4475a3
and r13d, 0xffffffef
mov dword [r8 + 0x18], r13d
mov r15, r8
lea rdi, [r8 + 0x1c8]
mov ebp, 0x600
xor eax, eax
and r15d, 1
jne 0x448986
test dil, 2
jne 0x44896e
test dil, 4
jne 0x448978
mov ecx, ebp
shr ecx, 3
rep stosq qword [rdi], rax
mov rdx, rdi
test bpl, 4
je 0x4482ff
stosd dword [rdi], eax
mov rdx, rdi
test bpl, 2
je 0x44830d
mov rdi, rdx
stosw word [rdi], ax
mov rdx, rdi
and ebp, 1
je 0x448316
mov rdi, rdx
stosb byte [rdi], al
mov rcx, qword [rsp + 0x48]
mov dword [rcx + 0xa4], 0
call fcn.00436d20
nop
add rsp, 0x758
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx ecx, byte [r12]
mov byte [r8 + 0x1c8], cl
lea rax, [r8 + 0x1c9]
lea rsi, [rsp + 0x151]
mov r13d, 0x5ff
test al, 2
je 0x447f8b
movzx ebx, word [rsi]
mov word [rax], bx
add rax, 2
add rsi, 2
sub r13d, 2
test al, 4
je 0x447f93
mov r9d, dword [rsi]
mov dword [rax], r9d
add rax, 4
add rsi, 4
sub r13d, 4
jmp 0x447f93
lea r13, [rsp + 0xf0]
lea r14, [rsp + 0xf8]
mov ebp, 0xb
mov rdi, r14
mov rcx, rbp
mov rax, rbx
rep stosq qword [rdi], rax
movabs r10, 0x200000012
mov qword [rsp + 0xf0], r10
cmp r15d, 0x800
mov esi, 0x800
cmovle esi, r15d
mov dword [rsp + 0x20], 0xffffffff
mov r9, r13
mov r8d, esi
mov rdi, qword [rsp + 0x68]
mov rdx, rdi
mov rcx, qword [rsp + 0x90]
call fcn.00444ba5
mov rcx, r13
call fcn.00444a20
mov dword [rsp + 0x20], 1
mov r9, r13
mov r8d, r15d
mov qword [rsp + 0x68], rdi
mov rdx, rdi
mov rcx, qword [rsp + 0x90]
call fcn.00444ba5
mov rdi, r14
mov rcx, rbp
mov rax, rbx
rep stosq qword [rdi], rax
movabs r11, 0x200000011
mov qword [rsp + 0xf0], r11
mov dword [rsp + 0x20], 0xffffffff
mov r9, r13
mov r8d, esi
mov r14, qword [rsp + 0xb8]
mov rdx, r14
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
call fcn.00444ba5
mov dword [rsp + 0x20], 1
mov r9, r13
mov r8d, r15d
mov rdx, r14
mov rcx, rbx
call fcn.00444ba5
mov r13, qword [rsp + 0x60]
mov rcx, r13
call sub.msvcrt.dll_malloc
mov qword [rsp + 0xa0], rax
mov r8, r13
mov rdx, qword [rsp + 0x90]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rbp, qword [rsp + 0x48]
mov edi, dword [rbp + 0x18]
mov r8, qword [rbp + 0x1b8]
mov qword [rsp + 0x38], r8
mov r9d, 0xffffffff
mov r8d, dword [rbp + 0x14]
mov rdx, r14
mov rcx, rbp
call fcn.004396a0
mov r9d, dword [rbp + 0x14]
mov qword [rsp + 0xd8], 0
test byte [rbp + 0x18], 0x40
jne 0x44872a
test r9d, r9d
je 0x447b30
sub r9d, 1
mov rsi, qword [rsp + 0xa0]
mov r10, qword [rsp + 0xb8]
mov r13, r10
lea r14, [r10 + r9*8 + 8]
add r9, 1
and r9d, 3
je 0x4485f6
cmp r9, 1
je 0x4485b2
cmp r9, 2
je 0x448577
xor r8d, r8d
mov edx, dword [r10]
mov rbp, qword [rsp + 0x48]
mov rcx, rbp
call fcn.004394fe
sub eax, dword [r13]
mov rbx, qword [rsp + 0xa0]
add dword [rbx], eax
mov edx, dword [r13 + 4]
mov r8d, 1
mov rcx, rbp
call fcn.004394fe
sub eax, dword [r13 + 4]
add dword [rbx + 4], eax
lea rsi, [rbx + 8]
lea r13, [r13 + 8]
xor r8d, r8d
mov edx, dword [r13]
mov rdi, qword [rsp + 0x48]
mov rcx, rdi
call fcn.004394fe
sub eax, dword [r13]
add dword [rsi], eax
mov edx, dword [r13 + 4]
mov r8d, 1
mov rcx, rdi
call fcn.004394fe
sub eax, dword [r13 + 4]
add dword [rsi + 4], eax
add rsi, 8
add r13, 8
xor r8d, r8d
mov edx, dword [r13]
mov rbp, qword [rsp + 0x48]
mov rcx, rbp
call fcn.004394fe
sub eax, dword [r13]
add dword [rsi], eax
mov edx, dword [r13 + 4]
mov r8d, 1
mov rcx, rbp
call fcn.004394fe
sub eax, dword [r13 + 4]
add dword [rsi + 4], eax
add rsi, 8
add r13, 8
cmp r13, r14
je 0x447b30
mov rbx, qword [rsp + 0x48]
xor r8d, r8d
mov edx, dword [r13]
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13]
add dword [rsi], eax
mov edx, dword [r13 + 4]
mov r8d, 1
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13 + 4]
add dword [rsi + 4], eax
lea rdi, [rsi + 8]
xor r8d, r8d
mov edx, dword [r13 + 8]
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13 + 8]
add dword [rdi], eax
mov edx, dword [r13 + 0xc]
mov r8d, 1
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13 + 0xc]
add dword [rdi + 4], eax
lea rbp, [rsi + 0x10]
xor r8d, r8d
mov edx, dword [r13 + 0x10]
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13 + 0x10]
add dword [rbp], eax
mov edx, dword [r13 + 0x14]
mov r8d, 1
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13 + 0x14]
add dword [rbp + 4], eax
lea rdi, [rsi + 0x18]
xor r8d, r8d
mov edx, dword [r13 + 0x18]
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13 + 0x18]
add dword [rdi], eax
mov edx, dword [r13 + 0x1c]
mov r8d, 1
mov rcx, rbx
call fcn.004394fe
sub eax, dword [r13 + 0x1c]
add dword [rdi + 4], eax
add rsi, 0x20
add r13, 0x20
cmp r13, r14
jne 0x4485fb
jmp 0x447b30
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x90]
call sub.msvcrt.dll_memcpy
jmp 0x447da6
mov r9, qword [rsp + 0x90]
jmp 0x447644
mov r8d, dword [rsp + 0xc8]
mov rdx, qword [rsp + 0x90]
call fcn.0044635e
jmp 0x447da6
mov qword [rsp + 0x50], 0
jmp 0x447d2f
test r9d, r9d
je 0x447afe
and edi, 0x20000000
mov r14d, edi
sub r9d, 1
mov rdi, qword [rsp + 0xb8]
lea rax, [rdi + r9*8 + 8]
mov qword [rsp + 0x40], rax
mov r11, qword [rsp + 0xa0]
xor ebp, ebp
xor r13d, r13d
mov dword [rsp + 0x70], r15d
mov r15, r11
mov qword [rsp + 0x50], r12
mov r12, qword [rsp + 0x48]
jmp 0x44883f
movzx r9d, r13w
imul r9d, esi
sar r9d, 9
mov r10d, r13d
sar r10d, 9
and r10d, 0xffffff80
imul r10d, esi
lea ebx, [r9 + r10 + 1]
sar ebx, 1
neg ebx
test r14d, r14d
je 0x4487a7
test esi, esi
js 0x448903
xor r8d, r8d
mov edx, dword [rdi]
mov rcx, r12
call fcn.004394fe
sub eax, dword [rdi]
mov r13d, eax
mov dword [rsp + 0xd8], eax
add ebx, eax
add dword [r15], ebx
cmp qword [rsp + 0x38], 0
je 0x44888e
movsx ecx, bp
cmp ecx, ebp
je 0x448879
movzx r11d, bp
imul r11d, esi
sar r11d, 9
mov eax, ebp
sar eax, 9
and eax, 0xffffff80
imul eax, esi
lea ebx, [r11 + rax + 1]
sar ebx, 1
neg ebx
test r14d, r14d
je 0x448809
test esi, esi
js 0x4488cb
mov edx, dword [rdi + 4]
mov r8d, 1
mov rcx, r12
call fcn.004394fe
sub eax, dword [rdi + 4]
mov ebp, eax
mov dword [rsp + 0xdc], eax
add ebx, eax
add dword [r15 + 4], ebx
add r15, 8
add rdi, 8
cmp rdi, qword [rsp + 0x40]
je 0x447af4
mov r8, qword [rsp + 0x38]
test r8, r8
je 0x4488ae
movsx esi, word [r8]
add r8, 2
mov qword [rsp + 0x38], r8
movsx edx, r13w
cmp edx, r13d
jne 0x448776
mov ebx, esi
imul ebx, r13d
add ebx, 0x200
sar ebx, 0xa
neg ebx
jmp 0x44879a
mov ebx, esi
imul ebx, ebp
add ebx, 0x200
sar ebx, 0xa
neg ebx
jmp 0x4487fc
mov esi, dword [r12 + 0x18c]
add esi, dword [r12 + 0x184]
mov dword [r12 + 0x184], esi
sar esi, 0x10
jmp 0x4487d1
mov esi, dword [r12 + 0x188]
add esi, dword [r12 + 0x180]
mov dword [r12 + 0x180], esi
sar esi, 0x10
jmp 0x448856
test ebx, ebx
je 0x448809
cmp ebx, ebp
je 0x448962
mov edx, dword [rdi + 4]
mov r8d, 1
mov rcx, r12
call fcn.004394fe
sub eax, dword [rdi + 4]
mov ebp, eax
add ebp, ebx
mov dword [rsp + 0xdc], ebp
add dword [r15 + 4], ebp
jmp 0x44882c
test ebx, ebx
je 0x4487a7
cmp ebx, r13d
je 0x448958
xor r8d, r8d
mov edx, dword [rdi]
mov rcx, r12
call fcn.004394fe
sub eax, dword [rdi]
mov r13d, eax
add r13d, ebx
mov dword [rsp + 0xd8], r13d
add dword [r15], r13d
jmp 0x4487c5
xor edi, edi
jmp 0x4476bd
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x90]
call sub.msvcrt.dll_memcpy
jmp 0x447da6
test ebx, ebx
js 0x448981
sub ebx, 1
nop
jmp 0x448910
test ebx, ebx
js 0x448991
sub ebx, 1
jmp 0x4488db
stosw word [rdi], ax
sub ebp, 2
jmp 0x4482e0
stosd dword [rdi], eax
sub ebp, 4
jmp 0x4482ea
add ebx, 1
jmp 0x448910
stosb byte [rdi], al
mov ebp, 0x5ff
jmp 0x4482d6
add ebx, 1
jmp 0x4488db