Function at 0x47af10
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 0x47af4b
cmp qword [rcx + 0x30], 0
je 0x47af4b
cmp qword [rcx + 0x38], 0
je 0x47af4b
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x47af4b
cmp rcx, qword [rbx]
je 0x47af60
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 0x47af9d
and r8d, 1
jne 0x47af4b
cmp edi, 5
ja 0x47c222
cmp qword [rsi + 0x10], 0
je 0x47c230
mov eax, dword [rsi + 8]
test eax, eax
je 0x47afc2
cmp qword [rsi], 0
je 0x47c230
cmp edi, 4
setne cl
cmp edx, 0x29a
jne 0x47afd8
test cl, cl
jne 0x47c230
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x47b3d0
mov r10d, dword [rbx + 0x28]
mov r8d, dword [rbx + 0x40]
mov dword [rbx + 0x40], edi
test r10d, r10d
jne 0x47b3f0
test eax, eax
jne 0x47b3c0
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 0x47b033
test cl, cl
jne 0x47b3d0
cmp edx, 0x29a
je 0x47b422
cmp edx, 0x2a
je 0x47b431
cmp edx, 0x39
je 0x47ba90
cmp edx, 0x45
je 0x47b5f0
cmp edx, 0x49
je 0x47bff2
cmp edx, 0x5b
je 0x47c249
cmp edx, 0x67
je 0x47c26e
mov eax, dword [rsi + 8]
test eax, eax
jne 0x47b0a0
mov eax, dword [rbx + 0x9c]
test eax, eax
jne 0x47b0a0
test edi, edi
je 0x47b3b0
cmp dword [rbx + 8], 0x29a
je 0x47b0fe
nop word [rax + rax]
movsxd rax, dword [rbx + 0xac]
test eax, eax
je 0x47b5e0
mov edx, dword [rbx + 0xb0]
cmp edx, 2
je 0x47b221
cmp edx, 3
je 0x47bc90
lea r8, [0x00503580]
shl rax, 4
mov edx, edi
mov rcx, rbx
call qword [r8 + rax + 8]
lea edx, [rax - 2]
cmp edx, 1
jbe 0x47b390
mov edx, eax
and edx, 0xfffffffd
test edx, edx
je 0x47b3a2
cmp eax, 1
je 0x47b580
cmp edi, 4
jne 0x47b3b0
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x47c363
cmp eax, 2
je 0x47c27a
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.004830f0
mov edi, dword [rbp + 0x28]
cmp dword [rsi + 0x18], edi
cmovbe edi, dword [rsi + 0x18]
test edi, edi
jne 0x47c044
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x47b1a7
neg eax
mov dword [rbx + 0x2c], eax
mov edx, dword [rbx + 0x28]
xor eax, eax
test edx, edx
sete al
jmp 0x47af4b
movsxd rax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47b1d7
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00483300
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.004830f0
mov r12d, dword [r13 + 0x28]
cmp dword [rbp + 0x18], r12d
cmovbe r12d, dword [rbp + 0x18]
test r12d, r12d
jne 0x47c12d
mov rax, qword [rbx]
mov eax, dword [rax + 0x18]
test eax, eax
je 0x47b3a2
mov eax, dword [rbx + 0x9c]
jmp 0x47b2d6
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 0x47b1c0
test eax, eax
jne 0x47b230
mov rcx, rbx
call fcn.00478ca0
mov eax, dword [rbx + 0x9c]
test eax, eax
jne 0x47b230
test edi, edi
je 0x47b3a2
cmp edi, 4
mov dword [rbx + 0x1708], 0
je 0x47c4cd
mov r14d, dword [rbx + 0x16f4]
test r14d, r14d
je 0x47b580
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47b33d
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00483300
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r12, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r12
call fcn.004830f0
mov r13d, dword [r12 + 0x28]
cmp dword [rbp + 0x18], r13d
cmovbe r13d, dword [rbp + 0x18]
test r13d, r13d
jne 0x47c5dd
mov rax, qword [rbx]
mov r11d, dword [rax + 0x18]
xor eax, eax
test r11d, r11d
setne al
mov edx, eax
jmp 0x47b0ed
and eax, 0xfffffffd
test eax, eax
mov dword [rbx + 8], 0x29a
jne 0x47b0fe
mov eax, dword [rsi + 0x18]
test eax, eax
jne 0x47b3b0
mov dword [rbx + 0x40], 0xffffffff
xor eax, eax
jmp 0x47af4b
cmp edx, 0x29a
jne 0x47b03f
nop dword [rax]
mov rax, qword [0x0050b110]
mov rax, qword [rax + 0x38]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffb
jmp 0x47af4b
mov rcx, rbx
call fcn.004830f0
mov ebp, dword [rbx + 0x28]
mov eax, dword [rsi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
jne 0x47ba30
test eax, eax
je 0x47b5d0
mov edx, dword [rbx + 8]
cmp edx, 0x29a
jne 0x47b03f
mov r9d, dword [rsi + 8]
test r9d, r9d
je 0x47b075
jmp 0x47b3d0
mov r8d, dword [rbx + 0x2c]
test r8d, r8d
jne 0x47b450
mov dword [rbx + 8], 0x71
jmp 0x47b075
mov eax, dword [rbx + 0x48]
shl eax, 0xc
lea ecx, [rax - 0x7800]
xor eax, eax
cmp dword [rbx + 0xb0], 1
jle 0x47bfc0
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 0x47b531
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.00484420
mov r12, qword [rsi + 0x28]
mov dword [rsi + 0x4c], eax
mov dword [rbx + 8], 0x71
mov rcx, r12
call fcn.004830f0
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47bc50
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x47b3a9
mov edx, dword [rbx + 8]
jmp 0x47b048
cmp edi, 1
je 0x47c0d9
cmp edi, 5
je 0x47b5a7
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.00482f50
cmp edi, 3
je 0x47c61c
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.004830f0
mov ebp, dword [r12 + 0x28]
mov eax, dword [rsi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
jne 0x47c321
test eax, eax
jne 0x47b0fe
mov dword [rbx + 0x40], 0xffffffff
jmp 0x47af4b
mov edx, edi
mov rcx, rbx
call fcn.00479610
jmp 0x47b0dc
mov rax, qword [rbx + 0x30]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x47b767
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 0x47b64c
jmp 0x47b70e
mov r12d, dword [rbx + 0x28]
test r12d, r12d
jne 0x47b3a9
mov eax, dword [rbx + 0x18]
sub r13d, ebp
cmp eax, r13d
jae 0x47b700
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 0x47b681
cmp r8d, r12d
ja 0x47b6e0
mov r14, qword [rsi + 0x28]
add dword [rbx + 0x38], ebp
mov rcx, r14
call fcn.004830f0
mov r12d, dword [r14 + 0x28]
cmp dword [rsi + 0x18], r12d
cmovbe r12d, dword [rsi + 0x18]
test r12d, r12d
je 0x47b624
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 0x47b624
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
jmp 0x47b624
mov rdx, r14
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r12d
call fcn.00484ff0
mov dword [rsi + 0x4c], eax
jmp 0x47b681
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 0x47b760
cmp r8d, r12d
jbe 0x47b760
mov rdx, rbp
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r12d
call fcn.00484ff0
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 0x47b877
mov r9d, dword [rbx + 0x28]
mov r8d, r9d
jmp 0x47b7b2
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 0x47b840
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x47b782
mov ecx, dword [rax + 0x3c]
test ecx, ecx
je 0x47b7c8
cmp r9d, r8d
jb 0x47ba15
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.004830f0
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47b800
mov r8d, dword [rbx + 0x28]
test r8d, r8d
jne 0x47b3a9
mov rax, qword [rbx + 0x30]
xor r9d, r9d
jmp 0x47b782
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 0x47b7e4
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47b7e4
mov rax, qword [rbx + 0x30]
mov edx, dword [rax + 0x3c]
test edx, edx
je 0x47b870
mov r8d, dword [rbx + 0x28]
cmp r9d, r8d
jae 0x47b870
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00484ff0
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 0x47c0d1
mov r9d, dword [rbx + 0x28]
mov r8d, r9d
jmp 0x47b8c2
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 0x47b950
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x47b892
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x47b8d8
cmp r9d, r8d
jb 0x47ba70
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.004830f0
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47b910
mov r8d, dword [rbx + 0x28]
test r8d, r8d
jne 0x47b3a9
mov rax, qword [rbx + 0x30]
xor r9d, r9d
jmp 0x47b892
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 0x47b8f4
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47b8f4
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x47b968
mov r8d, dword [rbx + 0x28]
cmp r9d, r8d
jb 0x47c0b8
mov dword [rbx + 8], 0x67
test eax, eax
je 0x47b9de
mov eax, dword [rbx + 0x28]
lea edx, [rax + 2]
cmp edx, dword [rbx + 0x18]
jbe 0x47b9a9
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.004830f0
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47c07b
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x47b3a9
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.00484ff0
mov dword [rsi + 0x4c], eax
mov r12, qword [rsi + 0x28]
mov dword [rbx + 8], 0x71
mov rcx, r12
call fcn.004830f0
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47c0f0
mov eax, dword [rbx + 0x28]
test eax, eax
je 0x47b075
jmp 0x47b3a9
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00484ff0
mov dword [rsi + 0x4c], eax
jmp 0x47b7c8
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 0x47b40b
mov rdx, qword [rbx + 0x10]
mov qword [rbx + 0x20], rdx
jmp 0x47b40b
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00484ff0
mov dword [rsi + 0x4c], eax
jmp 0x47b8d8
xor edx, edx
xor ecx, ecx
xor r8d, r8d
call fcn.00484ff0
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 0x47c36d
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 0x47bbd0
cmp dword [rbx + 0xb0], 1
jg 0x47bbc6
xor edx, edx
cmp ecx, 1
jg 0x47bbd0
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 0x47bc27
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 0x47c252
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x45
jmp 0x47b5f4
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 0x47b567
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47b567
mov r12, qword [0x0050aec0]
mov rbp, qword [0x0050ae70]
mov eax, dword [rbx + 0x9c]
mov r13d, 0x102
jmp 0x47bd68
mov dword [rbx + 0x88], 0
mov edx, dword [rbx + 0x94]
mov r8, qword [rbx + 0x50]
test edx, edx
jne 0x47bdc0
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 0x47bf58
cmp eax, 0x102
ja 0x47bcb0
mov rcx, rbx
call fcn.00478ca0
mov eax, dword [rbx + 0x9c]
cmp eax, 0x102
ja 0x47bcb0
test edi, edi
je 0x47b3a2
test eax, eax
je 0x47c167
cmp eax, 2
mov dword [rbx + 0x88], 0
ja 0x47bcba
mov r8, qword [rbx + 0x50]
mov edx, dword [rbx + 0x94]
jmp 0x47bcce
lea rcx, [r8 + rdx - 1]
movzx r11d, byte [rcx]
movzx r9d, byte [rcx]
cmp byte [rcx + 1], r11b
jne 0x47bcce
movzx r10d, byte [rcx + 2]
cmp r9d, r10d
jne 0x47bcce
movzx r10d, byte [rcx + 3]
cmp r9d, r10d
jne 0x47bcce
add rcx, 3
lea r11, [r8 + rdx + 0x102]
jmp 0x47be70
movzx r10d, byte [rcx + 2]
cmp r9d, r10d
jne 0x47c688
movzx r10d, byte [rcx + 3]
cmp r9d, r10d
jne 0x47c67f
movzx r10d, byte [rcx + 4]
cmp r9d, r10d
jne 0x47c676
movzx r10d, byte [rcx + 5]
cmp r9d, r10d
jne 0x47c6a3
movzx r10d, byte [rcx + 6]
cmp r9d, r10d
jne 0x47c69a
movzx r10d, byte [rcx + 7]
cmp r9d, r10d
jne 0x47c691
add rcx, 8
movzx r10d, byte [rcx]
cmp r10d, r9d
sete r14b
cmp r11, rcx
seta r10b
test r14b, r10b
je 0x47be7e
movzx r10d, byte [rcx + 1]
cmp r9d, r10d
je 0x47be01
add rcx, 1
sub r11, rcx
mov ecx, r13d
sub ecx, r11d
cmp ecx, eax
mov dword [rbx + 0x88], ecx
jbe 0x47c446
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 0x47bd68
movsxd rax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47bf6f
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00483300
mov r13, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r15, qword [r13 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r15
call fcn.004830f0
mov r14d, dword [r15 + 0x28]
cmp dword [r13 + 0x18], r14d
cmovbe r14d, dword [r13 + 0x18]
test r14d, r14d
jne 0x47c000
mov rax, qword [rbx]
mov r13d, dword [rax + 0x18]
test r13d, r13d
jne 0x47bc9e
jmp 0x47b3a2
mov edx, dword [rbx + 0xac]
cmp edx, 1
jle 0x47b46b
cmp edx, 5
mov eax, 0x40
jle 0x47b46b
cmp edx, 6
mov eax, 0xc0
mov edx, pe_nt_image_headers64
cmove eax, edx
jmp 0x47b46b
mov rax, qword [rbx + 0x30]
jmp 0x47b76e
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 0x47bfa7
mov rax, qword [r15 + 0x10]
mov qword [r15 + 0x20], rax
jmp 0x47bfa7
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 0x47b19b
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x20], rax
jmp 0x47b19b
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 0x47b99e
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47b99e
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.00484ff0
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
jmp 0x47b968
mov rcx, rbx
call fcn.00483180
jmp 0x47b5a7
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 0x47ba05
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47ba05
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 0x47b213
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x47b213
cmp edi, 4
mov dword [rbx + 0x1708], 0
je 0x47c454
mov ebp, dword [rbx + 0x16f4]
test ebp, ebp
je 0x47b580
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47c1a6
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.00483300
mov r12, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [r12 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.004830f0
mov ebp, dword [r13 + 0x28]
cmp dword [r12 + 0x18], ebp
cmovbe ebp, dword [r12 + 0x18]
test ebp, ebp
je 0x47b37a
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 0x47b37a
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x47b37a
mov eax, 0xfffffffe
jmp 0x47af4b
mov rax, qword [0x0050b110]
mov rax, qword [rax + 0x20]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffe
jmp 0x47af4b
mov rax, qword [rbx + 0x30]
jmp 0x47b87e
mov rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
mov r8d, dword [rbx + 0x28]
call fcn.00484ff0
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
jmp 0x47bc34
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
jmp 0x47b96f
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 0x47b17d
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 0x47b5c8
mov rdx, qword [r12 + 0x10]
mov qword [r12 + 0x20], rdx
jmp 0x47b5c8
mov eax, 1
jmp 0x47af4b
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 0x47c3f7
cmp dword [rbx + 0xb0], 1
jg 0x47c66c
xor edx, edx
cmp ecx, 1
jle 0x47c66c
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.004830f0
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x47c566
mov r15d, dword [rbx + 0x28]
test r15d, r15d
jne 0x47b3a9
mov edx, dword [rbx + 8]
jmp 0x47b051
cmp ecx, 2
ja 0x47be9d
jmp 0x47bcce
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47c472
add rax, qword [rbx + 0x50]
mov rdx, rax
mov r9d, 1
mov rcx, rbx
call fcn.00483300
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.004830f0
mov r12d, dword [r13 + 0x28]
cmp dword [rbp + 0x18], r12d
cmovbe r12d, dword [rbp + 0x18]
test r12d, r12d
jne 0x47c5a3
mov rax, qword [rbx]
mov r15d, dword [rax + 0x18]
xor eax, eax
test r15d, r15d
je 0x47b393
mov eax, 1
jmp 0x47b393
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47c4eb
add rax, qword [rbx + 0x50]
mov rdx, rax
mov r9d, 1
mov rcx, rbx
call fcn.00483300
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r12, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r12
call fcn.004830f0
mov r13d, dword [r12 + 0x28]
cmp dword [rbp + 0x18], r13d
cmovbe r13d, dword [rbp + 0x18]
test r13d, r13d
je 0x47c4b1
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 0x47c4b1
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47c4b1
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 0x47c431
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47c431
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 0x47c4b1
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x47c4b1
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 0x47b37a
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47b37a
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 0x47b5a7
mov dword [rbx + 0x94], 0
mov dword [rbx + 0x84], 0
mov dword [rbx + 0x1708], 0
jmp 0x47b5a7
mov edx, 4
jmp 0x47c3f7
add rcx, 4
jmp 0x47be7e
add rcx, 3
jmp 0x47be7e
add rcx, 2
jmp 0x47be7e
add rcx, 7
jmp 0x47be7e
add rcx, 6
jmp 0x47be7e
add rcx, 5
jmp 0x47be7e