Function at 0x47ec60
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, 0x38
mov eax, 0xfffffffe
test rcx, rcx
mov rsi, rcx
mov edi, edx
je 0x47ec9b
cmp qword [rcx + 0x30], 0
je 0x47ec9b
cmp qword [rcx + 0x38], 0
je 0x47ec9b
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x47ec9b
cmp rcx, qword [rbx]
je 0x47ecb0
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rbx + 8]
movabs r8, 0x2002000088008001
lea ecx, [rdx - 0x2a]
shr r8, cl
cmp ecx, 0x3d
mov ecx, 1
not r8
cmova r8, rcx
cmp edx, 0x71
setne r9b
cmp edx, 0x29a
setne cl
test r9b, cl
je 0x47eced
and r8d, 1
jne 0x47ec9b
cmp edi, 5
ja 0x47ff72
cmp qword [rsi + 0x10], 0
je 0x47ff80
mov eax, dword [rsi + 8]
test eax, eax
je 0x47ed12
cmp qword [rsi], 0
je 0x47ff80
cmp edi, 4
setne cl
cmp edx, 0x29a
jne 0x47ed28
test cl, cl
jne 0x47ff80
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x47f120
mov r10d, dword [rbx + 0x28]
mov r8d, dword [rbx + 0x40]
mov dword [rbx + 0x40], edi
test r10d, r10d
jne 0x47f140
test eax, eax
jne 0x47f110
xor eax, eax
cmp edi, 5
lea r10d, [rdi + rdi]
sete al
lea r9d, [r8 + r8]
lea eax, [rax + rax*8]
sub r10d, eax
xor eax, eax
cmp r8d, 5
setge al
lea eax, [rax + rax*8]
sub r9d, eax
cmp r10d, r9d
jg 0x47ed83
test cl, cl
jne 0x47f120
cmp edx, 0x29a
je 0x47f172
cmp edx, 0x2a
je 0x47f181
cmp edx, 0x39
je 0x47f7e0
cmp edx, 0x45
je 0x47f340
cmp edx, 0x49
je 0x47fd42
cmp edx, 0x5b
je 0x47ff99
cmp edx, 0x67
je 0x47ffbe
mov eax, dword [rsi + 8]
test eax, eax
jne 0x47edf0
mov eax, dword [rbx + 0x9c]
test eax, eax
jne 0x47edf0
test edi, edi
je 0x47f100
cmp dword [rbx + 8], 0x29a
je 0x47ee4e
nop word [rax + rax]
movsxd rax, dword [rbx + 0xac]
test eax, eax
je 0x47f330
mov edx, dword [rbx + 0xb0]
cmp edx, 2
je 0x47ef71
cmp edx, 3
je 0x47f9e0
lea r8, [0x004d0bc0]
shl rax, 4
mov edx, edi
mov rcx, rbx
call qword [r8 + rax + 8]
lea edx, [rax - 2]
cmp edx, 1
jbe 0x47f0e0
mov edx, eax
and edx, 0xfffffffd
test edx, edx
je 0x47f0f2
cmp eax, 1
je 0x47f2d0
cmp edi, 4
jne 0x47f100
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x4800b3
cmp eax, 2
je 0x47ffca
mov eax, dword [rbx + 0x28]
mov edx, dword [rsi + 0x4c]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov r8d, edx
shr edx, 0x10
shr r8d, 0x18
mov byte [rcx + rax], r8b
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rax], dl
mov eax, dword [rbx + 0x28]
movzx edx, word [rsi + 0x4c]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov r8d, edx
shr r8d, 8
mov byte [rcx + rax], r8b
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rax], dl
mov rbp, qword [rsi + 0x28]
mov rcx, rbp
call fcn.00486e40
mov edi, dword [rbp + 0x28]
cmp dword [rsi + 0x18], edi
cmovbe edi, dword [rsi + 0x18]
test edi, edi
jne 0x47fd94
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x47eef7
neg eax
mov dword [rbx + 0x2c], eax
mov edx, dword [rbx + 0x28]
xor eax, eax
test edx, edx
sete al
jmp 0x47ec9b
movsxd rax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47ef27
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00487050
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.00486e40
mov r12d, dword [r13 + 0x28]
cmp dword [rbp + 0x18], r12d
cmovbe r12d, dword [rbp + 0x18]
test r12d, r12d
jne 0x47fe7d
mov rax, qword [rbx]
mov eax, dword [rax + 0x18]
test eax, eax
je 0x47f0f2
mov eax, dword [rbx + 0x9c]
jmp 0x47f026
mov eax, dword [rbx + 0x94]
mov rdx, qword [rbx + 0x50]
mov dword [rbx + 0x88], 0
mov rcx, qword [rbx + 0x16e8]
movzx eax, byte [rdx + rax]
mov edx, dword [rbx + 0x16f4]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], 0
mov edx, dword [rbx + 0x16f4]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], 0
mov edx, dword [rbx + 0x16f4]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], al
add word [rbx + rax*4 + 0xbc], 1
mov ecx, dword [rbx + 0x94]
mov eax, dword [rbx + 0x9c]
lea r8d, [rcx + 1]
sub eax, 1
mov ecx, dword [rbx + 0x16f8]
cmp dword [rbx + 0x16f4], ecx
mov dword [rbx + 0x9c], eax
mov dword [rbx + 0x94], r8d
je 0x47ef10
test eax, eax
jne 0x47ef80
mov rcx, rbx
call fcn.0047c9f0
mov eax, dword [rbx + 0x9c]
test eax, eax
jne 0x47ef80
test edi, edi
je 0x47f0f2
cmp edi, 4
mov dword [rbx + 0x1708], 0
je 0x48021d
mov r14d, dword [rbx + 0x16f4]
test r14d, r14d
je 0x47f2d0
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47f08d
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00487050
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r12, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r12
call fcn.00486e40
mov r13d, dword [r12 + 0x28]
cmp dword [rbp + 0x18], r13d
cmovbe r13d, dword [rbp + 0x18]
test r13d, r13d
jne 0x48032d
mov rax, qword [rbx]
mov r11d, dword [rax + 0x18]
xor eax, eax
test r11d, r11d
setne al
mov edx, eax
jmp 0x47ee3d
and eax, 0xfffffffd
test eax, eax
mov dword [rbx + 8], 0x29a
jne 0x47ee4e
mov eax, dword [rsi + 0x18]
test eax, eax
jne 0x47f100
mov dword [rbx + 0x40], 0xffffffff
xor eax, eax
jmp 0x47ec9b
cmp edx, 0x29a
jne 0x47ed8f
nop dword [rax]
mov rax, qword [0x004d8740]
mov rax, qword [rax + 0x38]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffb
jmp 0x47ec9b
mov rcx, rbx
call fcn.00486e40
mov ebp, dword [rbx + 0x28]
mov eax, dword [rsi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
jne 0x47f780
test eax, eax
je 0x47f320
mov edx, dword [rbx + 8]
cmp edx, 0x29a
jne 0x47ed8f
mov r9d, dword [rsi + 8]
test r9d, r9d
je 0x47edc5
jmp 0x47f120
mov r8d, dword [rbx + 0x2c]
test r8d, r8d
jne 0x47f1a0
mov dword [rbx + 8], 0x71
jmp 0x47edc5
mov eax, dword [rbx + 0x48]
shl eax, 0xc
lea ecx, [rax - 0x7800]
xor eax, eax
cmp dword [rbx + 0xb0], 1
jle 0x47fd10
mov edx, dword [rbx + 0x94]
or ecx, eax
mov eax, ecx
or eax, 0x20
test edx, edx
mov edx, 0x8421085
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 ecx, dword [rbx + 0x94]
test ecx, ecx
je 0x47f281
mov eax, dword [rbx + 0x28]
mov edx, dword [rsi + 0x4c]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov r8d, edx
shr edx, 0x10
shr r8d, 0x18
mov byte [rcx + rax], r8b
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rax], dl
mov eax, dword [rbx + 0x28]
movzx edx, word [rsi + 0x4c]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov r8d, edx
shr r8d, 8
mov byte [rcx + rax], r8b
mov eax, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x10]
lea r8d, [rax + 1]
mov dword [rbx + 0x28], r8d
mov byte [rcx + rax], dl
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.00488170
mov r12, qword [rsi + 0x28]
mov dword [rsi + 0x4c], eax
mov dword [rbx + 8], 0x71
mov rcx, r12
call fcn.00486e40
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47f9a0
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x47f0f9
mov edx, dword [rbx + 8]
jmp 0x47ed98
cmp edi, 1
je 0x47fe29
cmp edi, 5
je 0x47f2f7
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.00486ca0
cmp edi, 3
je 0x48036c
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.00486e40
mov ebp, dword [r12 + 0x28]
mov eax, dword [rsi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
jne 0x480071
test eax, eax
jne 0x47ee4e
mov dword [rbx + 0x40], 0xffffffff
jmp 0x47ec9b
mov edx, edi
mov rcx, rbx
call fcn.0047d360
jmp 0x47ee2c
mov rax, qword [rbx + 0x30]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x47f4b7
movzx r13d, word [rax + 0x18]
mov r9d, dword [rbx + 0x38]
mov r12d, dword [rbx + 0x28]
mov eax, dword [rbx + 0x18]
sub r13d, r9d
mov ebp, r12d
lea ecx, [r12 + r13]
cmp eax, ecx
jb 0x47f39c
jmp 0x47f45e
mov r12d, dword [rbx + 0x28]
test r12d, r12d
jne 0x47f0f9
mov eax, dword [rbx + 0x18]
sub r13d, ebp
cmp eax, r13d
jae 0x47f450
mov rdx, qword [rbx + 0x30]
mov r9d, dword [rbx + 0x38]
mov rdx, qword [rdx + 0x10]
mov r14d, r12d
sub eax, r12d
add rdx, r9
mov rcx, r14
add rcx, qword [rbx + 0x10]
mov r8d, eax
mov rbp, r8
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx + 0x30]
mov r8d, dword [rbx + 0x18]
mov r10d, dword [rax + 0x3c]
mov dword [rbx + 0x28], r8d
test r10d, r10d
je 0x47f3d1
cmp r8d, r12d
ja 0x47f430
mov r14, qword [rsi + 0x28]
add dword [rbx + 0x38], ebp
mov rcx, r14
call fcn.00486e40
mov r12d, dword [r14 + 0x28]
cmp dword [rsi + 0x18], r12d
cmovbe r12d, dword [rsi + 0x18]
test r12d, r12d
je 0x47f374
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r14 + 0x20]
mov r15d, r12d
mov r8, r15
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r15
add qword [r14 + 0x20], r15
add dword [rsi + 0x1c], r12d
sub dword [rsi + 0x18], r12d
sub dword [r14 + 0x28], r12d
jne 0x47f374
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
jmp 0x47f374
mov rdx, r14
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r12d
call fcn.00488d40
mov dword [rsi + 0x4c], eax
jmp 0x47f3d1
mov rax, qword [rbx + 0x30]
mov r9d, dword [rbx + 0x38]
xor ebp, ebp
mov rdx, qword [rax + 0x10]
mov rcx, rbp
add rcx, qword [rbx + 0x10]
mov eax, r9d
add rdx, rax
mov r8d, r13d
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx + 0x30]
mov r8d, dword [rbx + 0x28]
mov r9d, dword [rax + 0x3c]
add r8d, r13d
mov dword [rbx + 0x28], r8d
test r9d, r9d
je 0x47f4b0
cmp r8d, r12d
jbe 0x47f4b0
mov rdx, rbp
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r12d
call fcn.00488d40
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
nop dword [rax]
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x49
cmp qword [rax + 0x20], 0
je 0x47f5c7
mov r9d, dword [rbx + 0x28]
mov r8d, r9d
jmp 0x47f502
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 0x47f590
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x47f4d2
mov ecx, dword [rax + 0x3c]
test ecx, ecx
je 0x47f518
cmp r9d, r8d
jb 0x47f765
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.00486e40
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47f550
mov r8d, dword [rbx + 0x28]
test r8d, r8d
jne 0x47f0f9
mov rax, qword [rbx + 0x30]
xor r9d, r9d
jmp 0x47f4d2
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rsi + 0x1c], ebp
sub dword [rsi + 0x18], ebp
sub dword [r12 + 0x28], ebp
jne 0x47f534
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47f534
mov rax, qword [rbx + 0x30]
mov edx, dword [rax + 0x3c]
test edx, edx
je 0x47f5c0
mov r8d, dword [rbx + 0x28]
cmp r9d, r8d
jae 0x47f5c0
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00488d40
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
nop dword [rax]
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x5b
cmp qword [rax + 0x30], 0
je 0x47fe21
mov r9d, dword [rbx + 0x28]
mov r8d, r9d
jmp 0x47f612
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 0x47f6a0
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x47f5e2
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x47f628
cmp r9d, r8d
jb 0x47f7c0
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.00486e40
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47f660
mov r8d, dword [rbx + 0x28]
test r8d, r8d
jne 0x47f0f9
mov rax, qword [rbx + 0x30]
xor r9d, r9d
jmp 0x47f5e2
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rsi + 0x1c], ebp
sub dword [rsi + 0x18], ebp
sub dword [r12 + 0x28], ebp
jne 0x47f644
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47f644
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x47f6b8
mov r8d, dword [rbx + 0x28]
cmp r9d, r8d
jb 0x47fe08
mov dword [rbx + 8], 0x67
test eax, eax
je 0x47f72e
mov eax, dword [rbx + 0x28]
lea edx, [rax + 2]
cmp edx, dword [rbx + 0x18]
jbe 0x47f6f9
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.00486e40
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47fdcb
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x47f0f9
lea ecx, [rax + 1]
mov rdx, qword [rbx + 0x10]
xor r8d, r8d
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 edx, dword [rsi + 0x4c]
shr edx, 8
mov byte [rcx + rax], dl
xor edx, edx
xor ecx, ecx
call fcn.00488d40
mov dword [rsi + 0x4c], eax
mov r12, qword [rsi + 0x28]
mov dword [rbx + 8], 0x71
mov rcx, r12
call fcn.00486e40
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47fe40
mov eax, dword [rbx + 0x28]
test eax, eax
je 0x47edc5
jmp 0x47f0f9
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00488d40
mov dword [rsi + 0x4c], eax
jmp 0x47f518
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rbx + 0x20]
mov r12d, ebp
mov r8, r12
call sub.msvcrt.dll_memcpy
mov eax, dword [rsi + 0x18]
add qword [rsi + 0x10], r12
add qword [rbx + 0x20], r12
add dword [rsi + 0x1c], ebp
sub eax, ebp
mov dword [rsi + 0x18], eax
sub dword [rbx + 0x28], ebp
jne 0x47f15b
mov rdx, qword [rbx + 0x10]
mov qword [rbx + 0x20], rdx
jmp 0x47f15b
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00488d40
mov dword [rsi + 0x4c], eax
jmp 0x47f628
xor edx, edx
xor ecx, ecx
xor r8d, r8d
call fcn.00488d40
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 0x4800bd
mov r8d, dword [rbx + 0x28]
mov ebp, dword [rax]
mov r12d, dword [rax + 0x3c]
mov r9, qword [rbx + 0x10]
test ebp, ebp
lea edx, [r8 + 1]
mov dword [rbx + 0x28], edx
setne dl
test r12d, r12d
setne cl
cmp qword [rax + 0x10], 0
mov r13d, edx
lea ecx, [r13 + rcx*2]
setne dl
shl edx, 2
add ecx, edx
cmp qword [rax + 0x20], 0
mov r14d, ecx
setne dl
cmp qword [rax + 0x30], 0
lea edx, [r14 + rdx*8]
setne al
shl eax, 4
add eax, edx
mov byte [r9 + r8], 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, qword [rbx + 0x30]
mov edx, dword [rdx + 4]
shr edx, 8
mov byte [rcx + rax], dl
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]
mov ecx, dword [rbx + 0xac]
lea edx, [rax + 1]
add rax, qword [rbx + 0x10]
cmp ecx, 9
mov dword [rbx + 0x28], edx
mov edx, 2
je 0x47f920
cmp dword [rbx + 0xb0], 1
jg 0x47f916
xor edx, edx
cmp ecx, 1
jg 0x47f920
mov edx, 4
nop dword [rax + rax]
mov byte [rax], dl
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 0x47f977
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, qword [rbx + 0x30]
mov edx, dword [rdx + 0x18]
shr edx, 8
mov byte [rcx + rax], dl
mov rax, qword [rbx + 0x30]
mov r11d, dword [rax + 0x3c]
test r11d, r11d
jne 0x47ffa2
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x45
jmp 0x47f344
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rsi + 0x1c], ebp
sub dword [rsi + 0x18], ebp
sub dword [r12 + 0x28], ebp
jne 0x47f2b7
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47f2b7
mov r12, qword [0x004d8540]
mov rbp, qword [0x004d84f0]
mov eax, dword [rbx + 0x9c]
mov r13d, 0x102
jmp 0x47fab8
mov dword [rbx + 0x88], 0
mov edx, dword [rbx + 0x94]
mov r8, qword [rbx + 0x50]
test edx, edx
jne 0x47fb10
xor edx, edx
movzx eax, byte [r8 + rdx]
mov edx, dword [rbx + 0x16f4]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], 0
mov edx, dword [rbx + 0x16f4]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], 0
mov edx, dword [rbx + 0x16f4]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], al
xor edx, edx
add word [rbx + rax*4 + 0xbc], 1
mov eax, dword [rbx + 0x16f8]
cmp dword [rbx + 0x16f4], eax
mov ecx, dword [rbx + 0x94]
mov eax, dword [rbx + 0x9c]
sete dl
lea r8d, [rcx + 1]
sub eax, 1
test edx, edx
mov dword [rbx + 0x9c], eax
mov dword [rbx + 0x94], r8d
jne 0x47fca8
cmp eax, 0x102
ja 0x47fa00
mov rcx, rbx
call fcn.0047c9f0
mov eax, dword [rbx + 0x9c]
cmp eax, 0x102
ja 0x47fa00
test edi, edi
je 0x47f0f2
test eax, eax
je 0x47feb7
cmp eax, 2
mov dword [rbx + 0x88], 0
ja 0x47fa0a
mov r8, qword [rbx + 0x50]
mov edx, dword [rbx + 0x94]
jmp 0x47fa1e
lea rcx, [r8 + rdx - 1]
movzx r11d, byte [rcx]
movzx r9d, byte [rcx]
cmp byte [rcx + 1], r11b
jne 0x47fa1e
movzx r10d, byte [rcx + 2]
cmp r9d, r10d
jne 0x47fa1e
movzx r10d, byte [rcx + 3]
cmp r9d, r10d
jne 0x47fa1e
add rcx, 3
lea r11, [r8 + rdx + 0x102]
jmp 0x47fbc0
movzx r10d, byte [rcx + 2]
cmp r9d, r10d
jne 0x4803d8
movzx r10d, byte [rcx + 3]
cmp r9d, r10d
jne 0x4803cf
movzx r10d, byte [rcx + 4]
cmp r9d, r10d
jne 0x4803c6
movzx r10d, byte [rcx + 5]
cmp r9d, r10d
jne 0x4803f3
movzx r10d, byte [rcx + 6]
cmp r9d, r10d
jne 0x4803ea
movzx r10d, byte [rcx + 7]
cmp r9d, r10d
jne 0x4803e1
add rcx, 8
movzx r10d, byte [rcx]
cmp r10d, r9d
sete r14b
cmp r11, rcx
seta r10b
test r14b, r10b
je 0x47fbce
movzx r10d, byte [rcx + 1]
cmp r9d, r10d
je 0x47fb51
add rcx, 1
sub r11, rcx
mov ecx, r13d
sub ecx, r11d
cmp ecx, eax
mov dword [rbx + 0x88], ecx
jbe 0x480196
mov dword [rbx + 0x88], eax
mov ecx, eax
mov edx, dword [rbx + 0x16f4]
lea eax, [rcx - 3]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], 1
mov edx, dword [rbx + 0x16f4]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], 0
mov edx, dword [rbx + 0x16f4]
mov rcx, qword [rbx + 0x16e8]
lea r8d, [rdx + 1]
mov dword [rbx + 0x16f4], r8d
mov byte [rcx + rdx], al
movzx eax, al
movzx eax, byte [r12 + rax]
xor edx, edx
add word [rbx + rax*4 + 0x4c0], 1
movzx eax, byte [rbp]
add word [rbx + rax*4 + 0x9b0], 1
mov eax, dword [rbx + 0x16f8]
cmp dword [rbx + 0x16f4], eax
mov r8d, dword [rbx + 0x88]
mov eax, dword [rbx + 0x9c]
mov dword [rbx + 0x88], 0
sete dl
sub eax, r8d
add r8d, dword [rbx + 0x94]
test edx, edx
mov dword [rbx + 0x9c], eax
mov dword [rbx + 0x94], r8d
je 0x47fab8
movsxd rax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47fcbf
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00487050
mov r13, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r15, qword [r13 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r15
call fcn.00486e40
mov r14d, dword [r15 + 0x28]
cmp dword [r13 + 0x18], r14d
cmovbe r14d, dword [r13 + 0x18]
test r14d, r14d
jne 0x47fd50
mov rax, qword [rbx]
mov r13d, dword [rax + 0x18]
test r13d, r13d
jne 0x47f9ee
jmp 0x47f0f2
mov edx, dword [rbx + 0xac]
cmp edx, 1
jle 0x47f1bb
cmp edx, 5
mov eax, 0x40
jle 0x47f1bb
cmp edx, 6
mov eax, 0xc0
mov edx, pe_nt_image_headers64
cmove eax, edx
jmp 0x47f1bb
mov rax, qword [rbx + 0x30]
jmp 0x47f4be
mov rcx, qword [r13 + 0x10]
mov rdx, qword [r15 + 0x20]
mov r9d, r14d
mov r8, r9
mov qword [rsp + 0x28], r9
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x28]
add qword [r13 + 0x10], r9
add qword [r15 + 0x20], r9
add dword [r13 + 0x1c], r14d
sub dword [r13 + 0x18], r14d
sub dword [r15 + 0x28], r14d
jne 0x47fcf7
mov rax, qword [r15 + 0x10]
mov qword [r15 + 0x20], rax
jmp 0x47fcf7
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rbp + 0x20]
mov r12d, edi
mov r8, r12
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r12
add qword [rbp + 0x20], r12
add dword [rsi + 0x1c], edi
sub dword [rsi + 0x18], edi
sub dword [rbp + 0x28], edi
jne 0x47eeeb
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x20], rax
jmp 0x47eeeb
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rsi + 0x1c], ebp
sub dword [rsi + 0x18], ebp
sub dword [r12 + 0x28], ebp
jne 0x47f6ee
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47f6ee
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00488d40
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
jmp 0x47f6b8
mov rcx, rbx
call fcn.00486ed0
jmp 0x47f2f7
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rsi + 0x1c], ebp
sub dword [rsi + 0x18], ebp
sub dword [r12 + 0x28], ebp
jne 0x47f755
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47f755
mov rcx, qword [rbp + 0x10]
mov rdx, qword [r13 + 0x20]
mov r14d, r12d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [rbp + 0x10], r14
add qword [r13 + 0x20], r14
add dword [rbp + 0x1c], r12d
sub dword [rbp + 0x18], r12d
sub dword [r13 + 0x28], r12d
jne 0x47ef63
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x47ef63
cmp edi, 4
mov dword [rbx + 0x1708], 0
je 0x4801a4
mov ebp, dword [rbx + 0x16f4]
test ebp, ebp
je 0x47f2d0
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47fef6
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00487050
mov r12, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [r12 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.00486e40
mov ebp, dword [r13 + 0x28]
cmp dword [r12 + 0x18], ebp
cmovbe ebp, dword [r12 + 0x18]
test ebp, ebp
je 0x47f0ca
mov rcx, qword [r12 + 0x10]
mov rdx, qword [r13 + 0x20]
mov r14d, ebp
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [r12 + 0x10], r14
add qword [r13 + 0x20], r14
add dword [r12 + 0x1c], ebp
sub dword [r12 + 0x18], ebp
sub dword [r13 + 0x28], ebp
jne 0x47f0ca
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x47f0ca
mov eax, 0xfffffffe
jmp 0x47ec9b
mov rax, qword [0x004d8740]
mov rax, qword [rax + 0x20]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffe
jmp 0x47ec9b
mov rax, qword [rbx + 0x30]
jmp 0x47f5ce
mov rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
mov r8d, dword [rbx + 0x28]
call fcn.00488d40
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
jmp 0x47f984
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
jmp 0x47f6bf
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 edx, dword [rsi + 0x4c]
shr edx, 8
mov byte [rcx + rax], dl
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 edx, dword [rsi + 0xc]
shr edx, 8
mov byte [rcx + rax], dl
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 0x47eecd
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.msvcrt.dll_memcpy
mov eax, dword [rsi + 0x18]
add qword [rsi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rsi + 0x1c], ebp
sub eax, ebp
mov dword [rsi + 0x18], eax
sub dword [r12 + 0x28], ebp
jne 0x47f318
mov rdx, qword [r12 + 0x10]
mov qword [r12 + 0x20], rdx
jmp 0x47f318
mov eax, 1
jmp 0x47ec9b
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]
mov ecx, dword [rbx + 0xac]
lea edx, [rax + 1]
add rax, qword [rbx + 0x10]
cmp ecx, 9
mov dword [rbx + 0x28], edx
mov edx, 2
je 0x480147
cmp dword [rbx + 0xb0], 1
jg 0x4803bc
xor edx, edx
cmp ecx, 1
jle 0x4803bc
mov byte [rax], dl
mov eax, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
lea ecx, [rax + 1]
mov dword [rbx + 0x28], ecx
mov byte [rdx + rax], 0xa
mov r12, qword [rsi + 0x28]
mov dword [rbx + 8], 0x71
mov rcx, r12
call fcn.00486e40
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x4802b6
mov r15d, dword [rbx + 0x28]
test r15d, r15d
jne 0x47f0f9
mov edx, dword [rbx + 8]
jmp 0x47eda1
cmp ecx, 2
ja 0x47fbed
jmp 0x47fa1e
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x4801c2
add rax, qword [rbx + 0x50]
mov rdx, rax
mov r9d, 1
mov rcx, rbx
call fcn.00487050
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.00486e40
mov r12d, dword [r13 + 0x28]
cmp dword [rbp + 0x18], r12d
cmovbe r12d, dword [rbp + 0x18]
test r12d, r12d
jne 0x4802f3
mov rax, qword [rbx]
mov r15d, dword [rax + 0x18]
xor eax, eax
test r15d, r15d
je 0x47f0e3
mov eax, 1
jmp 0x47f0e3
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x48023b
add rax, qword [rbx + 0x50]
mov rdx, rax
mov r9d, 1
mov rcx, rbx
call fcn.00487050
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r12, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r12
call fcn.00486e40
mov r13d, dword [r12 + 0x28]
cmp dword [rbp + 0x18], r13d
cmovbe r13d, dword [rbp + 0x18]
test r13d, r13d
je 0x480201
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 0x480201
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x480201
mov rcx, qword [rsi + 0x10]
mov rdx, qword [r12 + 0x20]
mov r13d, ebp
mov r8, r13
call sub.msvcrt.dll_memcpy
add qword [rsi + 0x10], r13
add qword [r12 + 0x20], r13
add dword [rsi + 0x1c], ebp
sub dword [rsi + 0x18], ebp
sub dword [r12 + 0x28], ebp
jne 0x480181
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x480181
mov rcx, qword [rbp + 0x10]
mov rdx, qword [r13 + 0x20]
mov r14d, r12d
mov r8, r14
call sub.msvcrt.dll_memcpy
add qword [rbp + 0x10], r14
add qword [r13 + 0x20], r14
add dword [rbp + 0x1c], r12d
sub dword [rbp + 0x18], r12d
sub dword [r13 + 0x28], r12d
jne 0x480201
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x480201
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 0x47f0ca
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47f0ca
mov eax, dword [rbx + 0x74]
mov rcx, qword [rbx + 0x68]
xor r9d, r9d
xor edx, edx
lea r8d, [rax - 1]
mov word [rcx + r8*2], r9w
add r8, r8
call sub.msvcrt.dll_memset
mov r10d, dword [rbx + 0x9c]
test r10d, r10d
jne 0x47f2f7
mov dword [rbx + 0x94], 0
mov dword [rbx + 0x84], 0
mov dword [rbx + 0x1708], 0
jmp 0x47f2f7
mov edx, 4
jmp 0x480147
add rcx, 4
jmp 0x47fbce
add rcx, 3
jmp 0x47fbce
add rcx, 2
jmp 0x47fbce
add rcx, 7
jmp 0x47fbce
add rcx, 6
jmp 0x47fbce
add rcx, 5
jmp 0x47fbce