Function at 0x5e5940
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, 0x28
test rcx, rcx
mov rsi, rcx
mov edi, edx
je 0x5e686b
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x5e686b
cmp edx, 5
ja 0x5e686b
cmp qword [rcx + 0x10], 0
je 0x5e5b19
cmp qword [rcx], 0
je 0x5e6610
mov eax, dword [rbx + 8]
cmp eax, 0x29a
je 0x5e5b10
mov ebp, dword [rsi + 0x18]
test ebp, ebp
je 0x5e6207
cmp eax, 0x2a
mov ebp, dword [rbx + 0x40]
mov qword [rbx], rsi
mov dword [rbx + 0x40], edi
je 0x5e5bf0
cmp eax, 0x45
je 0x5e5cff
cmp eax, 0x49
mov r9d, dword [rbx + 0x28]
je 0x5e5df0
cmp eax, 0x5b
je 0x5e62d0
cmp eax, 0x67
je 0x5e6782
test r9d, r9d
nop
jne 0x5e5b30
mov r9d, dword [rsi + 8]
test r9d, r9d
jne 0x5e61f0
xor eax, eax
cmp edi, 5
lea ecx, [rdi + rdi]
sete al
lea edx, [rbp + rbp]
lea eax, [rax + rax*8]
sub ecx, eax
xor eax, eax
cmp ebp, 5
setge al
lea eax, [rax + rax*8]
sub edx, eax
cmp ecx, edx
jg 0x5e5a21
cmp edi, 4
jne 0x5e6207
mov eax, dword [rbx + 8]
mov r13d, dword [rbx + 0x9c]
test r13d, r13d
jne 0x5e5b76
test edi, edi
je 0x5e5bd3
cmp eax, 0x29a
jne 0x5e5b76
nop word [rax + rax]
cmp edi, 4
jne 0x5e5bd3
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x5e6c8f
cmp eax, 2
je 0x5e69b0
mov edx, dword [rbx + 0x28]
mov eax, dword [rsi + 0x4c]
mov r8, qword [rbx + 0x10]
mov ecx, eax
shr eax, 0x18
lea r9d, [rdx + 1]
shr ecx, 0x10
mov dword [rbx + 0x28], r9d
mov byte [r8 + rdx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov byte [rdx + rax], cl
mov edx, dword [rbx + 0x28]
movzx eax, word [rsi + 0x4c]
mov rcx, qword [rbx + 0x10]
lea r8d, [rdx + 1]
mov dword [rbx + 0x28], r8d
mov r8d, eax
shr r8d, 8
mov byte [rcx + rdx], r8b
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea r8d, [rdx + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rdx], al
mov rdi, qword [rsi + 0x28]
mov rcx, rdi
call fcn.005eb4a0
mov eax, dword [rdi + 0x28]
mov ebp, dword [rsi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
jne 0x5e68ee
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x5e5af8
neg eax
mov dword [rbx + 0x2c], eax
mov ebx, dword [rbx + 0x28]
xor eax, eax
test ebx, ebx
sete al
jmp 0x5e5bd5
cmp edi, 4
je 0x5e5997
mov rax, qword [str.stream_error]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffe
jmp 0x5e5bd5
mov rbp, qword [rsi + 0x28]
mov rcx, rbp
call fcn.005eb4a0
mov r12d, dword [rbp + 0x28]
mov eax, dword [rsi + 0x18]
cmp eax, r12d
cmovbe r12d, eax
test r12d, r12d
jne 0x5e605a
test eax, eax
je 0x5e604e
mov eax, dword [rbx + 8]
mov r9d, dword [rsi + 8]
cmp eax, 0x29a
je 0x5e61fe
test r9d, r9d
je 0x5e5a24
mov eax, dword [rbx + 0xb0]
cmp eax, 2
je 0x5e5e65
cmp eax, 3
je 0x5e62e0
movsxd rax, dword [rbx + 0xac]
lea r8, [0x007b1aa0]
mov edx, edi
mov rcx, rbx
shl rax, 4
call qword [r8 + rax + 8]
mov edx, eax
lea ecx, [rax - 2]
and edx, 0xfffffffd
cmp ecx, 1
jbe 0x5e6291
test edx, edx
jne 0x5e5fb0
mov r13d, dword [rsi + 0x18]
test r13d, r13d
jne 0x5e5bd3
mov dword [rbx + 0x40], 0xffffffff
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp dword [rbx + 0x2c], 2
je 0x5e6a96
mov eax, dword [rbx + 0x48]
shl eax, 0xc
lea ecx, [rax - 0x7800]
xor eax, eax
cmp dword [rbx + 0xb0], 1
jle 0x5e6144
mov r8d, dword [rbx + 0x94]
or ecx, eax
mov edx, 0x8421085
mov eax, ecx
mov dword [rbx + 8], 0x71
or eax, 0x20
test r8d, r8d
cmovne ecx, eax
mov eax, ecx
mul edx
sub ecx, edx
shr ecx, 1
add ecx, edx
mov edx, dword [rbx + 0x28]
shr ecx, 4
mov eax, ecx
shl eax, 5
sub eax, ecx
lea r8d, [rdx + 1]
mov rcx, qword [rbx + 0x10]
add eax, 0x1f
mov dword [rbx + 0x28], r8d
mov r8d, eax
shr r8d, 8
mov byte [rcx + rdx], r8b
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea r8d, [rdx + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rdx], al
mov r9d, dword [rbx + 0x94]
test r9d, r9d
je 0x5e5ce4
mov edx, dword [rbx + 0x28]
mov eax, dword [rsi + 0x4c]
mov r8, qword [rbx + 0x10]
mov ecx, eax
shr eax, 0x18
lea r9d, [rdx + 1]
shr ecx, 0x10
mov dword [rbx + 0x28], r9d
mov byte [r8 + rdx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov byte [rdx + rax], cl
mov edx, dword [rbx + 0x28]
movzx eax, word [rsi + 0x4c]
mov rcx, qword [rbx + 0x10]
lea r8d, [rdx + 1]
mov dword [rbx + 0x28], r8d
mov r8d, eax
shr r8d, 8
mov byte [rcx + rdx], r8b
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea r8d, [rdx + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rdx], al
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.005e7b30
mov dword [rsi + 0x4c], eax
mov eax, dword [rbx + 8]
cmp eax, 0x45
jne 0x5e59bd
mov rax, qword [rbx + 0x30]
cmp qword [rax + 0x10], 0
je 0x5e695c
mov edx, dword [rbx + 0x38]
movzx ecx, word [rax + 0x18]
mov r9d, dword [rbx + 0x28]
cmp ecx, edx
mov r10d, r9d
jbe 0x5e5dc4
mov r8d, r9d
jmp 0x5e5d61
mov rcx, qword [rcx + 0x10]
lea r11d, [r8 + 1]
mov rax, qword [rbx + 0x10]
mov dword [rbx + 0x28], r11d
movzx edx, byte [rcx + rdx]
mov byte [rax + r8], dl
mov eax, dword [rbx + 0x38]
lea edx, [rax + 1]
mov rax, qword [rbx + 0x30]
mov dword [rbx + 0x38], edx
movzx ecx, word [rax + 0x18]
cmp ecx, edx
jbe 0x5e5dc0
mov r8d, dword [rbx + 0x28]
cmp dword [rbx + 0x18], r8d
mov rcx, rax
jne 0x5e5d30
mov ecx, dword [rax + 0x3c]
test ecx, ecx
je 0x5e5d7a
cmp r8d, r9d
ja 0x5e65f0
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.005eb4a0
mov eax, dword [r12 + 0x28]
mov r13d, dword [rsi + 0x18]
cmp r13d, eax
cmova r13d, eax
test r13d, r13d
jne 0x5e61b0
mov r9d, dword [rbx + 0x28]
cmp r9d, dword [rbx + 0x18]
mov r10d, r9d
je 0x5e693b
mov rcx, qword [rbx + 0x30]
mov edx, dword [rbx + 0x38]
mov r8d, r9d
jmp 0x5e5d30
mov r9d, dword [rbx + 0x28]
mov edx, dword [rax + 0x3c]
test edx, edx
je 0x5e5dd4
cmp r10d, r9d
jb 0x5e6875
mov edx, dword [rax + 0x18]
cmp dword [rbx + 0x38], edx
je 0x5e6098
mov eax, dword [rbx + 8]
cmp eax, 0x49
jne 0x5e59ca
nop dword [rax]
mov rax, qword [rbx + 0x30]
jmp 0x5e60a6
mov eax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x5e5e16
movsxd rdx, eax
add rdx, qword [rbx + 0x50]
xor r9d, r9d
mov rcx, rbx
call fcn.005eb6b0
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r12, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r12
call fcn.005eb4a0
mov eax, dword [r12 + 0x28]
mov r13d, dword [rbp + 0x18]
cmp r13d, eax
cmova r13d, eax
test r13d, r13d
jne 0x5e682c
mov rax, qword [rbx]
mov r11d, dword [rax + 0x18]
test r11d, r11d
je 0x5e5bc3
mov eax, dword [rbx + 0x9c]
jmp 0x5e5ef0
mov eax, dword [rbx + 0x94]
mov ecx, dword [rbx + 0x16f4]
xor ebp, ebp
mov rdx, qword [rbx + 0x50]
mov r8, qword [rbx + 0x16f8]
mov dword [rbx + 0x88], 0
movzx eax, byte [rdx + rax]
mov edx, ecx
add ecx, 1
mov word [r8 + rdx*2], bp
mov r8, qword [rbx + 0x16e8]
mov dword [rbx + 0x16f4], ecx
mov byte [r8 + rdx], al
add word [rbx + rax*4 + 0xbc], 1
mov eax, dword [rbx + 0x16f0]
mov ecx, dword [rbx + 0x94]
lea edx, [rax - 1]
mov eax, dword [rbx + 0x9c]
lea r8d, [rcx + 1]
mov dword [rbx + 0x94], r8d
sub eax, 1
cmp dword [rbx + 0x16f4], edx
mov dword [rbx + 0x9c], eax
je 0x5e5e00
test eax, eax
jne 0x5e5e70
mov rcx, rbx
call fcn.005e3f30
mov r12d, dword [rbx + 0x9c]
test r12d, r12d
jne 0x5e5e70
test edi, edi
je 0x5e5bc3
cmp edi, 4
mov dword [rbx + 0x170c], 0
je 0x5e621c
mov r15d, dword [rbx + 0x16f4]
test r15d, r15d
je 0x5e5fb9
mov eax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x5e5f58
movsxd rdx, eax
add rdx, qword [rbx + 0x50]
xor r9d, r9d
mov rcx, rbx
call fcn.005eb6b0
mov r12, qword [rbx]
mov eax, dword [rbx + 0x94]
mov rbp, qword [r12 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, rbp
call fcn.005eb4a0
mov eax, dword [rbp + 0x28]
mov r13d, dword [r12 + 0x18]
cmp r13d, eax
cmova r13d, eax
test r13d, r13d
jne 0x5e68b0
mov rax, qword [rbx]
mov r14d, dword [rax + 0x18]
xor eax, eax
test r14d, r14d
setne al
lea ecx, [rax - 2]
mov edx, eax
jmp 0x5e5bb2
cmp eax, 1
jne 0x5e5a50
cmp edi, 1
je 0x5e6d16
cmp edi, 5
je 0x5e6023
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.005eb2f0
cmp edi, 3
jne 0x5e6023
mov r8d, dword [rbx + 0x74]
mov rcx, qword [rbx + 0x68]
xor ebp, ebp
xor edx, edx
sub r8d, 1
mov word [rcx + r8*2], bp
add r8, r8
call sub.msvcrt.dll_memset
mov r12d, dword [rbx + 0x9c]
test r12d, r12d
jne 0x5e6023
mov dword [rbx + 0x94], 0
mov dword [rbx + 0x84], 0
mov dword [rbx + 0x170c], 0
mov rbp, qword [rsi + 0x28]
mov rcx, rbp
call fcn.005eb4a0
mov r12d, dword [rbp + 0x28]
mov eax, dword [rsi + 0x18]
cmp eax, r12d
cmovbe r12d, eax
test r12d, r12d
jne 0x5e6a5d
test eax, eax
jne 0x5e5a50
mov dword [rbx + 0x40], 0xffffffff
jmp 0x5e5bd5
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rbp + 0x20]
mov r13d, r12d
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [rbp + 0x20], r13
add dword [rsi + 0x1c], r12d
sub dword [rsi + 0x18], r12d
sub dword [rbp + 0x28], r12d
jne 0x5e608b
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x20], rax
mov eax, dword [rsi + 0x18]
test eax, eax
jne 0x5e5b5b
jmp 0x5e604e
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x49
cmp qword [rax + 0x20], 0
je 0x5e6944
mov r10d, r9d
mov r8d, r9d
jmp 0x5e60f0
mov rdx, qword [rax + 0x20]
mov eax, dword [rbx + 0x38]
lea ecx, [rax + 1]
mov dword [rbx + 0x38], ecx
movzx eax, byte [rdx + rax]
lea ecx, [r8 + 1]
mov rdx, qword [rbx + 0x10]
mov dword [rbx + 0x28], ecx
test al, al
mov byte [rdx + r8], al
je 0x5e62a0
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x5e60c0
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x5e6106
cmp r9d, r8d
jb 0x5e65d0
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.005eb4a0
mov eax, dword [r12 + 0x28]
mov r13d, dword [rsi + 0x18]
cmp r13d, eax
cmova r13d, eax
test r13d, r13d
jne 0x5e6170
mov r9d, dword [rbx + 0x28]
cmp r9d, dword [rbx + 0x18]
mov r10d, r9d
je 0x5e6930
mov rax, qword [rbx + 0x30]
mov r8d, r9d
jmp 0x5e60c0
mov edx, dword [rbx + 0xac]
cmp edx, 1
jle 0x5e5c15
cmp edx, 5
mov al, 0x40
jle 0x5e5c15
cmp edx, 6
mov al, pe_nt_image_headers64
mov edx, 0xc0
cmovne eax, edx
jmp 0x5e5c15
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r14
add qword [r12 + 0x20], r14
add dword [rsi + 0x1c], r13d
sub dword [rsi + 0x18], r13d
sub dword [r12 + 0x28], r13d
jne 0x5e6127
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x5e6127
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r14
add qword [r12 + 0x20], r14
add dword [rsi + 0x1c], r13d
sub dword [rsi + 0x18], r13d
sub dword [r12 + 0x28], r13d
jne 0x5e5d9f
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x5e5d9f
mov eax, dword [rbx + 8]
cmp eax, 0x29a
jne 0x5e5b76
test r9d, r9d
je 0x5e5a24
mov rax, qword [str.buffer_error]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffb
jmp 0x5e5bd5
mov eax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x5e6239
movsxd rdx, eax
add rdx, qword [rbx + 0x50]
mov r9d, 1
mov rcx, rbx
call fcn.005eb6b0
mov r12, qword [rbx]
mov eax, dword [rbx + 0x94]
mov rbp, qword [r12 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, rbp
call fcn.005eb4a0
mov eax, dword [rbp + 0x28]
mov r13d, dword [r12 + 0x18]
cmp r13d, eax
cmova r13d, eax
test r13d, r13d
jne 0x5e6c99
mov rax, qword [rbx]
mov ecx, dword [rax + 0x18]
cmp ecx, 1
sbb edx, edx
add edx, 1
cmp ecx, 1
sbb eax, eax
add eax, 3
mov dword [rbx + 8], 0x29a
jmp 0x5e5bbb
mov r9d, dword [rbx + 0x28]
xor r12d, r12d
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x5e62bb
cmp r10d, r9d
jb 0x5e6c4d
test r12d, r12d
je 0x5e6660
mov eax, dword [rbx + 8]
cmp eax, 0x5b
jne 0x5e59d3
mov rax, qword [rbx + 0x30]
jmp 0x5e6672
movzx eax, byte [0x007b3f40]
lea rbp, [rbx + rax*4]
mov eax, dword [rbx + 0x9c]
jmp 0x5e6392
mov dword [rbx + 0x88], 0
mov ecx, dword [rbx + 0x94]
mov rdx, qword [rbx + 0x50]
test ecx, ecx
jne 0x5e63f0
xor ecx, ecx
movzx eax, byte [rdx + rcx]
mov ecx, dword [rbx + 0x16f4]
xor r9d, r9d
mov r8, qword [rbx + 0x16f8]
mov edx, ecx
add ecx, 1
mov word [r8 + rdx*2], r9w
mov r8, qword [rbx + 0x16e8]
mov dword [rbx + 0x16f4], ecx
xor ecx, ecx
mov byte [r8 + rdx], al
add word [rbx + rax*4 + 0xbc], 1
mov eax, dword [rbx + 0x16f0]
mov edx, dword [rbx + 0x94]
sub eax, 1
cmp dword [rbx + 0x16f4], eax
lea r8d, [rdx + 1]
mov eax, dword [rbx + 0x9c]
mov dword [rbx + 0x94], r8d
sete cl
sub eax, 1
test ecx, ecx
mov dword [rbx + 0x9c], eax
jne 0x5e6563
cmp eax, 0x102
ja 0x5e6300
mov rcx, rbx
call fcn.005e3f30
mov eax, dword [rbx + 0x9c]
cmp eax, 0x102
ja 0x5e6300
test edi, edi
je 0x5e5bc3
test eax, eax
je 0x5e5f18
cmp eax, 2
mov dword [rbx + 0x88], 0
ja 0x5e630a
mov rdx, qword [rbx + 0x50]
mov ecx, dword [rbx + 0x94]
jmp 0x5e631e
lea r8, [rdx + rcx - 1]
movzx r15d, byte [r8]
movzx r9d, byte [r8]
cmp byte [r8 + 1], r15b
jne 0x5e631e
movzx r10d, byte [r8 + 2]
cmp r9d, r10d
jne 0x5e631e
movzx r10d, byte [r8 + 3]
cmp r9d, r10d
jne 0x5e631e
add r8, 3
lea r11, [rdx + rcx + 0x102]
jmp 0x5e6497
movzx r10d, byte [r8 + 2]
cmp r9d, r10d
jne 0x5e6d48
movzx r10d, byte [r8 + 3]
cmp r9d, r10d
jne 0x5e6d5a
movzx r10d, byte [r8 + 4]
cmp r9d, r10d
jne 0x5e6d51
movzx r10d, byte [r8 + 5]
cmp r9d, r10d
jne 0x5e6d6c
movzx r10d, byte [r8 + 6]
cmp r9d, r10d
jne 0x5e6d63
movzx r10d, byte [r8 + 7]
cmp r9d, r10d
jne 0x5e6d3f
add r8, 8
movzx r10d, byte [r8]
cmp r9d, r10d
jne 0x5e64a5
cmp r8, r11
jae 0x5e64a5
movzx r10d, byte [r8 + 1]
cmp r9d, r10d
je 0x5e6431
add r8, 1
sub r8d, r11d
add r8d, 0x102
cmp r8d, eax
mov dword [rbx + 0x88], r8d
jbe 0x5e689a
mov dword [rbx + 0x88], eax
mov r8d, eax
mov ecx, dword [rbx + 0x16f4]
lea eax, [r8 - 3]
mov r8, qword [rbx + 0x16f8]
mov r10d, 1
mov edx, ecx
add ecx, 1
mov word [r8 + rdx*2], r10w
mov r8, qword [rbx + 0x16e8]
mov dword [rbx + 0x16f4], ecx
xor ecx, ecx
mov byte [r8 + rdx], al
lea rdx, [0x007b3e40]
movzx eax, al
movzx eax, byte [rdx + rax]
add word [rbx + rax*4 + 0x4c0], 1
add word [rbp + 0x9b0], 1
mov eax, dword [rbx + 0x16f0]
mov r8d, dword [rbx + 0x88]
mov dword [rbx + 0x88], 0
sub eax, 1
cmp dword [rbx + 0x16f4], eax
mov eax, dword [rbx + 0x9c]
sete cl
sub eax, r8d
add r8d, dword [rbx + 0x94]
test ecx, ecx
mov dword [rbx + 0x9c], eax
mov dword [rbx + 0x94], r8d
je 0x5e6392
mov eax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x5e6579
movsxd rdx, eax
add rdx, qword [rbx + 0x50]
xor r9d, r9d
mov rcx, rbx
call fcn.005eb6b0
mov r12, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [r12 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.005eb4a0
mov eax, dword [r13 + 0x28]
mov r14d, dword [r12 + 0x18]
cmp r14d, eax
cmova r14d, eax
test r14d, r14d
jne 0x5e6622
mov rax, qword [rbx]
mov eax, dword [rax + 0x18]
test eax, eax
jne 0x5e62eb
jmp 0x5e5bc3
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.005e81f0
mov dword [rsi + 0x4c], eax
jmp 0x5e6106
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.005e81f0
mov dword [rsi + 0x4c], eax
jmp 0x5e5d7a
mov r12d, dword [rcx + 8]
test r12d, r12d
je 0x5e5989
jmp 0x5e5b19
mov rcx, qword [r12 + 0x10]
mov rdx, qword [r13 + 0x20]
mov r15d, r14d
mov r8, r15
call sub.msvcrt.dll_memcpy
add qword [r12 + 0x10], r15
add qword [r13 + 0x20], r15
add dword [r12 + 0x1c], r14d
sub dword [r12 + 0x18], r14d
sub dword [r13 + 0x28], r14d
jne 0x5e65b5
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x5e65b5
mov rax, qword [rbx + 0x30]
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x5b
cmp qword [rax + 0x30], 0
je 0x5e6950
mov r10d, r9d
mov r8d, r9d
jmp 0x5e66b5
mov rdx, qword [rax + 0x30]
mov eax, dword [rbx + 0x38]
lea ecx, [rax + 1]
mov dword [rbx + 0x38], ecx
movzx eax, byte [rdx + rax]
lea ecx, [r8 + 1]
mov rdx, qword [rbx + 0x10]
mov dword [rbx + 0x28], ecx
test al, al
mov byte [rdx + r8], al
je 0x5e6750
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x5e6685
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x5e66cb
cmp r9d, r8d
jb 0x5e67f0
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.005eb4a0
mov eax, dword [r12 + 0x28]
mov r13d, dword [rsi + 0x18]
cmp r13d, eax
cmova r13d, eax
test r13d, r13d
jne 0x5e6710
mov r9d, dword [rbx + 0x28]
cmp r9d, dword [rbx + 0x18]
mov r10d, r9d
je 0x5e6925
mov rax, qword [rbx + 0x30]
mov r8d, r9d
jmp 0x5e6685
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r14
add qword [r12 + 0x20], r14
add dword [rsi + 0x1c], r13d
sub dword [rsi + 0x18], r13d
sub dword [r12 + 0x28], r13d
jne 0x5e66ec
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x5e66ec
mov r9d, dword [rbx + 0x28]
xor r12d, r12d
mov rax, qword [rbx + 0x30]
mov r15d, dword [rax + 0x3c]
test r15d, r15d
je 0x5e676d
cmp r10d, r9d
jb 0x5e6c6e
test r12d, r12d
je 0x5e681c
mov eax, dword [rbx + 8]
cmp eax, 0x67
jne 0x5e59dc
mov rax, qword [rbx + 0x30]
mov r14d, dword [rax + 0x3c]
test r14d, r14d
je 0x5e6810
lea eax, [r9 + 2]
cmp eax, dword [rbx + 0x18]
ja 0x5e696c
lea edx, [r9 + 1]
mov rax, qword [rbx + 0x10]
xor r8d, r8d
mov dword [rbx + 0x28], edx
mov edx, dword [rsi + 0x4c]
mov byte [rax + r9], dl
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea edx, [rax + 1]
mov dword [rbx + 0x28], edx
mov rdx, rax
mov eax, dword [rsi + 0x4c]
shr eax, 8
mov byte [rcx + rdx], al
xor edx, edx
xor ecx, ecx
call fcn.005e81f0
mov r9d, dword [rbx + 0x28]
mov dword [rsi + 0x4c], eax
mov dword [rbx + 8], 0x71
jmp 0x5e59dc
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.005e81f0
mov dword [rsi + 0x4c], eax
jmp 0x5e66cb
mov dword [rbx + 8], 0x71
jmp 0x5e59dc
mov dword [rbx + 8], 0x67
mov rax, qword [rbx + 0x30]
jmp 0x5e6786
mov rcx, qword [rbp + 0x10]
mov rdx, qword [r12 + 0x20]
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [rbp + 0x10], r14
add qword [r12 + 0x20], r14
add dword [rbp + 0x1c], r13d
sub dword [rbp + 0x18], r13d
sub dword [r12 + 0x28], r13d
jne 0x5e5e55
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x5e5e55
mov eax, 0xfffffffe
jmp 0x5e5bd5
mov edx, r10d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r9d, r10d
mov r8d, r9d
call fcn.005e81f0
mov r9d, dword [rbx + 0x28]
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
jmp 0x5e5dd4
cmp r8d, 2
ja 0x5e64c8
jmp 0x5e631e
mov rcx, qword [r12 + 0x10]
mov rdx, qword [rbp + 0x20]
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [r12 + 0x10], r14
add qword [rbp + 0x20], r14
sub dword [r12 + 0x18], r13d
add dword [r12 + 0x1c], r13d
sub dword [rbp + 0x28], r13d
jne 0x5e5f97
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x20], rax
jmp 0x5e5f97
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rdi + 0x20]
mov r12d, ebp
mov r8, r12
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r12
add qword [rdi + 0x20], r12
add dword [rsi + 0x1c], ebp
sub dword [rsi + 0x18], ebp
sub dword [rdi + 0x28], ebp
jne 0x5e5aec
mov rax, qword [rdi + 0x10]
mov qword [rdi + 0x20], rax
jmp 0x5e5aec
mov r12d, 1
jmp 0x5e6757
mov r12d, 1
jmp 0x5e62a7
mov rax, qword [rbx + 0x30]
jmp 0x5e5dc4
mov dword [rbx + 8], 0x5b
jmp 0x5e6672
mov dword [rbx + 8], 0x67
jmp 0x5e6786
mov dword [rbx + 8], 0x49
mov r9d, dword [rbx + 0x28]
jmp 0x5e60a6
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.005eb4a0
mov eax, dword [r12 + 0x28]
mov r13d, dword [rsi + 0x18]
cmp r13d, eax
cmova r13d, eax
test r13d, r13d
jne 0x5e6cd7
mov r9d, dword [rbx + 0x28]
lea eax, [r9 + 2]
cmp eax, dword [rbx + 0x18]
ja 0x5e59dc
jmp 0x5e67a0
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov ecx, dword [rsi + 0x4c]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea edx, [rax + 1]
mov dword [rbx + 0x28], edx
mov rdx, rax
mov eax, dword [rsi + 0x4c]
shr eax, 8
mov byte [rcx + rdx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
movzx ecx, word [rsi + 0x4e]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
movzx ecx, byte [rsi + 0x4f]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov ecx, dword [rsi + 0xc]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea edx, [rax + 1]
mov dword [rbx + 0x28], edx
mov rdx, rax
mov eax, dword [rsi + 0xc]
shr eax, 8
mov byte [rcx + rdx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
movzx ecx, word [rsi + 0xe]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
movzx ecx, byte [rsi + 0xf]
mov byte [rdx + rax], cl
jmp 0x5e5acd
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rbp + 0x20]
mov r13d, r12d
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [rbp + 0x20], r13
add dword [rsi + 0x1c], r12d
sub dword [rsi + 0x18], r12d
sub dword [rbp + 0x28], r12d
jne 0x5e6a8e
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x20], rax
mov eax, dword [rsi + 0x18]
jmp 0x5e6046
xor edx, edx
xor ecx, ecx
xor r8d, r8d
call fcn.005e81f0
mov dword [rsi + 0x4c], eax
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0x1f
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0x8b
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 8
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x5e6d75
mov r11d, dword [rax]
mov edx, dword [rbx + 0x28]
mov r8, qword [rbx + 0x10]
test r11d, r11d
setne r9b
cmp dword [rax + 0x3c], 1
lea ecx, [rdx + 1]
mov dword [rbx + 0x28], ecx
mov rcx, rdx
sbb edx, edx
not edx
and edx, 2
add r9d, edx
cmp qword [rax + 0x10], 1
sbb edx, edx
not edx
and edx, 4
add r9d, edx
cmp qword [rax + 0x20], 1
sbb edx, edx
not edx
and edx, 8
add edx, r9d
cmp qword [rax + 0x30], 1
sbb eax, eax
not eax
and eax, 0x10
add eax, edx
mov byte [r8 + rcx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov rcx, qword [rbx + 0x30]
mov ecx, dword [rcx + 4]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea edx, [rax + 1]
mov dword [rbx + 0x28], edx
mov rdx, rax
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 4]
shr eax, 8
mov byte [rcx + rdx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov rcx, qword [rbx + 0x30]
movzx ecx, word [rcx + 6]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov rcx, qword [rbx + 0x30]
movzx ecx, byte [rcx + 7]
mov byte [rdx + rax], cl
mov eax, dword [rbx + 0x28]
lea edx, [rax + 1]
mov dword [rbx + 0x28], edx
add rax, qword [rbx + 0x10]
mov edx, dword [rbx + 0xac]
cmp edx, 9
mov rcx, rax
mov eax, 2
je 0x5e6bd3
cmp dword [rbx + 0xb0], 1
jle 0x5e6e1b
mov eax, 4
mov byte [rcx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov rcx, qword [rbx + 0x30]
mov ecx, dword [rcx + 0xc]
mov byte [rdx + rax], cl
mov rax, qword [rbx + 0x30]
cmp qword [rax + 0x10], 0
je 0x5e6c2d
mov edx, dword [rbx + 0x28]
mov eax, dword [rax + 0x18]
mov rcx, qword [rbx + 0x10]
lea r8d, [rdx + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rdx], al
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea edx, [rax + 1]
mov dword [rbx + 0x28], edx
mov rdx, rax
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x18]
shr eax, 8
mov byte [rcx + rdx], al
mov rax, qword [rbx + 0x30]
mov r10d, dword [rax + 0x3c]
test r10d, r10d
jne 0x5e6d23
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x45
jmp 0x5e5d03
mov edx, r10d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r9d, r10d
mov r8d, r9d
call fcn.005e81f0
mov r9d, dword [rbx + 0x28]
mov dword [rsi + 0x4c], eax
jmp 0x5e62bb
mov edx, r10d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r9d, r10d
mov r8d, r9d
call fcn.005e81f0
mov r9d, dword [rbx + 0x28]
mov dword [rsi + 0x4c], eax
jmp 0x5e676d
mov eax, 1
jmp 0x5e5bd5
mov rcx, qword [r12 + 0x10]
mov rdx, qword [rbp + 0x20]
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [r12 + 0x10], r14
add qword [rbp + 0x20], r14
sub dword [r12 + 0x18], r13d
add dword [r12 + 0x1c], r13d
sub dword [rbp + 0x28], r13d
jne 0x5e627b
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x20], rax
jmp 0x5e627b
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r14
add qword [r12 + 0x20], r14
add dword [rsi + 0x1c], r13d
sub dword [rsi + 0x18], r13d
sub dword [r12 + 0x28], r13d
jne 0x5e6991
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x5e6991
mov rcx, rbx
call fcn.005eb530
jmp 0x5e6023
mov rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
mov r8d, dword [rbx + 0x28]
call fcn.005e81f0
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
jmp 0x5e6c3a
add r8, 7
jmp 0x5e64a5
add r8, 2
jmp 0x5e64a5
add r8, 4
jmp 0x5e64a5
add r8, 3
jmp 0x5e64a5
add r8, 6
jmp 0x5e64a5
add r8, 5
jmp 0x5e64a5
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0
mov eax, dword [rbx + 0x28]
lea edx, [rax + 1]
add rax, qword [rbx + 0x10]
mov dword [rbx + 0x28], edx
mov edx, dword [rbx + 0xac]
mov rcx, rax
mov eax, 2
cmp edx, 9
je 0x5e6df8
cmp dword [rbx + 0xb0], 1
jle 0x5e6e2b
mov eax, 4
mov byte [rcx], al
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0xb
mov dword [rbx + 8], 0x71
mov r9d, dword [rbx + 0x28]
jmp 0x5e59dc
cmp edx, 1
jle 0x5e6bce
xor eax, eax
jmp 0x5e6bd3
cmp edx, 1
nop
jle 0x5e6df3
xor eax, eax
jmp 0x5e6df8