Function at 0x473e90
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 0x473ecb
cmp qword [rcx + 0x30], 0
je 0x473ecb
cmp qword [rcx + 0x38], 0
je 0x473ecb
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x473ecb
cmp rcx, qword [rbx]
je 0x473ee0
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 0x473f1d
and r8d, 1
jne 0x473ecb
cmp edi, 5
ja 0x4751a2
cmp qword [rsi + 0x10], 0
je 0x4751b0
mov eax, dword [rsi + 8]
test eax, eax
je 0x473f42
cmp qword [rsi], 0
je 0x4751b0
cmp edi, 4
setne cl
cmp edx, 0x29a
jne 0x473f58
test cl, cl
jne 0x4751b0
mov r11d, dword [rsi + 0x18]
test r11d, r11d
je 0x474350
mov r10d, dword [rbx + 0x28]
mov r8d, dword [rbx + 0x40]
mov dword [rbx + 0x40], edi
test r10d, r10d
jne 0x474370
test eax, eax
jne 0x474340
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 0x473fb3
test cl, cl
jne 0x474350
cmp edx, 0x29a
je 0x4743a2
cmp edx, 0x2a
je 0x4743b1
cmp edx, 0x39
je 0x474a10
cmp edx, 0x45
je 0x474570
cmp edx, 0x49
je 0x474f72
cmp edx, 0x5b
je 0x4751c9
cmp edx, 0x67
je 0x4751ee
mov eax, dword [rsi + 8]
test eax, eax
jne 0x474020
mov eax, dword [rbx + 0x9c]
test eax, eax
jne 0x474020
test edi, edi
je 0x474330
cmp dword [rbx + 8], 0x29a
je 0x47407e
nop word [rax + rax]
movsxd rax, dword [rbx + 0xac]
test eax, eax
je 0x474560
mov edx, dword [rbx + 0xb0]
cmp edx, 2
je 0x4741a1
cmp edx, 3
je 0x474c10
lea r8, [0x004cb0c0]
shl rax, 4
mov edx, edi
mov rcx, rbx
call qword [r8 + rax + 8]
lea edx, [rax - 2]
cmp edx, 1
jbe 0x474310
mov edx, eax
and edx, 0xfffffffd
test edx, edx
je 0x474322
cmp eax, 1
je 0x474500
cmp edi, 4
jne 0x474330
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x4752e3
cmp eax, 2
je 0x4751fa
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.0047c070
mov edi, dword [rbp + 0x28]
cmp dword [rsi + 0x18], edi
cmovbe edi, dword [rsi + 0x18]
test edi, edi
jne 0x474fc4
mov eax, dword [rbx + 0x2c]
test eax, eax
jle 0x474127
neg eax
mov dword [rbx + 0x2c], eax
mov edx, dword [rbx + 0x28]
xor eax, eax
test edx, edx
sete al
jmp 0x473ecb
movsxd rax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x474157
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.0047c280
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.0047c070
mov r12d, dword [r13 + 0x28]
cmp dword [rbp + 0x18], r12d
cmovbe r12d, dword [rbp + 0x18]
test r12d, r12d
jne 0x4750ad
mov rax, qword [rbx]
mov eax, dword [rax + 0x18]
test eax, eax
je 0x474322
mov eax, dword [rbx + 0x9c]
jmp 0x474256
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 0x474140
test eax, eax
jne 0x4741b0
mov rcx, rbx
call fcn.00471c20
mov eax, dword [rbx + 0x9c]
test eax, eax
jne 0x4741b0
test edi, edi
je 0x474322
cmp edi, 4
mov dword [rbx + 0x1708], 0
je 0x47544d
mov r14d, dword [rbx + 0x16f4]
test r14d, r14d
je 0x474500
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x4742bd
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.0047c280
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r12, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r12
call fcn.0047c070
mov r13d, dword [r12 + 0x28]
cmp dword [rbp + 0x18], r13d
cmovbe r13d, dword [rbp + 0x18]
test r13d, r13d
jne 0x47555d
mov rax, qword [rbx]
mov r11d, dword [rax + 0x18]
xor eax, eax
test r11d, r11d
setne al
mov edx, eax
jmp 0x47406d
and eax, 0xfffffffd
test eax, eax
mov dword [rbx + 8], 0x29a
jne 0x47407e
mov eax, dword [rsi + 0x18]
test eax, eax
jne 0x474330
mov dword [rbx + 0x40], 0xffffffff
xor eax, eax
jmp 0x473ecb
cmp edx, 0x29a
jne 0x473fbf
nop dword [rax]
mov rax, qword [0x004d2c50]
mov rax, qword [rax + 0x38]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffb
jmp 0x473ecb
mov rcx, rbx
call fcn.0047c070
mov ebp, dword [rbx + 0x28]
mov eax, dword [rsi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
jne 0x4749b0
test eax, eax
je 0x474550
mov edx, dword [rbx + 8]
cmp edx, 0x29a
jne 0x473fbf
mov r9d, dword [rsi + 8]
test r9d, r9d
je 0x473ff5
jmp 0x474350
mov r8d, dword [rbx + 0x2c]
test r8d, r8d
jne 0x4743d0
mov dword [rbx + 8], 0x71
jmp 0x473ff5
mov eax, dword [rbx + 0x48]
shl eax, 0xc
lea ecx, [rax - 0x7800]
xor eax, eax
cmp dword [rbx + 0xb0], 1
jle 0x474f40
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 0x4744b1
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.0047d3a0
mov r12, qword [rsi + 0x28]
mov dword [rsi + 0x4c], eax
mov dword [rbx + 8], 0x71
mov rcx, r12
call fcn.0047c070
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x474bd0
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x474329
mov edx, dword [rbx + 8]
jmp 0x473fc8
cmp edi, 1
je 0x475059
cmp edi, 5
je 0x474527
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.0047bed0
cmp edi, 3
je 0x47559c
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.0047c070
mov ebp, dword [r12 + 0x28]
mov eax, dword [rsi + 0x18]
cmp ebp, eax
cmova ebp, eax
test ebp, ebp
jne 0x4752a1
test eax, eax
jne 0x47407e
mov dword [rbx + 0x40], 0xffffffff
jmp 0x473ecb
mov edx, edi
mov rcx, rbx
call fcn.00472590
jmp 0x47405c
mov rax, qword [rbx + 0x30]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x4746e7
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 0x4745cc
jmp 0x47468e
mov r12d, dword [rbx + 0x28]
test r12d, r12d
jne 0x474329
mov eax, dword [rbx + 0x18]
sub r13d, ebp
cmp eax, r13d
jae 0x474680
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 0x474601
cmp r8d, r12d
ja 0x474660
mov r14, qword [rsi + 0x28]
add dword [rbx + 0x38], ebp
mov rcx, r14
call fcn.0047c070
mov r12d, dword [r14 + 0x28]
cmp dword [rsi + 0x18], r12d
cmovbe r12d, dword [rsi + 0x18]
test r12d, r12d
je 0x4745a4
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 0x4745a4
mov rax, qword [r14 + 0x10]
mov qword [r14 + 0x20], rax
jmp 0x4745a4
mov rdx, r14
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r12d
call fcn.0047df70
mov dword [rsi + 0x4c], eax
jmp 0x474601
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 0x4746e0
cmp r8d, r12d
jbe 0x4746e0
mov rdx, rbp
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r12d
call fcn.0047df70
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 0x4747f7
mov r9d, dword [rbx + 0x28]
mov r8d, r9d
jmp 0x474732
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 0x4747c0
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x474702
mov ecx, dword [rax + 0x3c]
test ecx, ecx
je 0x474748
cmp r9d, r8d
jb 0x474995
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.0047c070
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x474780
mov r8d, dword [rbx + 0x28]
test r8d, r8d
jne 0x474329
mov rax, qword [rbx + 0x30]
xor r9d, r9d
jmp 0x474702
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 0x474764
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x474764
mov rax, qword [rbx + 0x30]
mov edx, dword [rax + 0x3c]
test edx, edx
je 0x4747f0
mov r8d, dword [rbx + 0x28]
cmp r9d, r8d
jae 0x4747f0
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.0047df70
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 0x475051
mov r9d, dword [rbx + 0x28]
mov r8d, r9d
jmp 0x474842
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 0x4748d0
mov r8d, dword [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp dword [rbx + 0x18], r8d
jne 0x474812
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x474858
cmp r9d, r8d
jb 0x4749f0
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.0047c070
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x474890
mov r8d, dword [rbx + 0x28]
test r8d, r8d
jne 0x474329
mov rax, qword [rbx + 0x30]
xor r9d, r9d
jmp 0x474812
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 0x474874
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x474874
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
test eax, eax
je 0x4748e8
mov r8d, dword [rbx + 0x28]
cmp r9d, r8d
jb 0x475038
mov dword [rbx + 8], 0x67
test eax, eax
je 0x47495e
mov eax, dword [rbx + 0x28]
lea edx, [rax + 2]
cmp edx, dword [rbx + 0x18]
jbe 0x474929
mov r12, qword [rsi + 0x28]
mov rcx, r12
call fcn.0047c070
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x474ffb
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x474329
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.0047df70
mov dword [rsi + 0x4c], eax
mov r12, qword [rsi + 0x28]
mov dword [rbx + 8], 0x71
mov rcx, r12
call fcn.0047c070
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x475070
mov eax, dword [rbx + 0x28]
test eax, eax
je 0x473ff5
jmp 0x474329
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.0047df70
mov dword [rsi + 0x4c], eax
jmp 0x474748
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 0x47438b
mov rdx, qword [rbx + 0x10]
mov qword [rbx + 0x20], rdx
jmp 0x47438b
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.0047df70
mov dword [rsi + 0x4c], eax
jmp 0x474858
xor edx, edx
xor ecx, ecx
xor r8d, r8d
call fcn.0047df70
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 0x4752ed
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 0x474b50
cmp dword [rbx + 0xb0], 1
jg 0x474b46
xor edx, edx
cmp ecx, 1
jg 0x474b50
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 0x474ba7
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 0x4751d2
mov dword [rbx + 0x38], 0
mov dword [rbx + 8], 0x45
jmp 0x474574
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 0x4744e7
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x4744e7
mov r12, qword [0x004d2a00]
mov rbp, qword [0x004d29b0]
mov eax, dword [rbx + 0x9c]
mov r13d, 0x102
jmp 0x474ce8
mov dword [rbx + 0x88], 0
mov edx, dword [rbx + 0x94]
mov r8, qword [rbx + 0x50]
test edx, edx
jne 0x474d40
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 0x474ed8
cmp eax, 0x102
ja 0x474c30
mov rcx, rbx
call fcn.00471c20
mov eax, dword [rbx + 0x9c]
cmp eax, 0x102
ja 0x474c30
test edi, edi
je 0x474322
test eax, eax
je 0x4750e7
cmp eax, 2
mov dword [rbx + 0x88], 0
ja 0x474c3a
mov r8, qword [rbx + 0x50]
mov edx, dword [rbx + 0x94]
jmp 0x474c4e
lea rcx, [r8 + rdx - 1]
movzx r11d, byte [rcx]
movzx r9d, byte [rcx]
cmp byte [rcx + 1], r11b
jne 0x474c4e
movzx r10d, byte [rcx + 2]
cmp r9d, r10d
jne 0x474c4e
movzx r10d, byte [rcx + 3]
cmp r9d, r10d
jne 0x474c4e
add rcx, 3
lea r11, [r8 + rdx + 0x102]
jmp 0x474df0
movzx r10d, byte [rcx + 2]
cmp r9d, r10d
jne 0x475608
movzx r10d, byte [rcx + 3]
cmp r9d, r10d
jne 0x4755ff
movzx r10d, byte [rcx + 4]
cmp r9d, r10d
jne 0x4755f6
movzx r10d, byte [rcx + 5]
cmp r9d, r10d
jne 0x475623
movzx r10d, byte [rcx + 6]
cmp r9d, r10d
jne 0x47561a
movzx r10d, byte [rcx + 7]
cmp r9d, r10d
jne 0x475611
add rcx, 8
movzx r10d, byte [rcx]
cmp r10d, r9d
sete r14b
cmp r11, rcx
seta r10b
test r14b, r10b
je 0x474dfe
movzx r10d, byte [rcx + 1]
cmp r9d, r10d
je 0x474d81
add rcx, 1
sub r11, rcx
mov ecx, r13d
sub ecx, r11d
cmp ecx, eax
mov dword [rbx + 0x88], ecx
jbe 0x4753c6
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 0x474ce8
movsxd rax, dword [rbx + 0x84]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x474eef
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.0047c280
mov r13, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r15, qword [r13 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r15
call fcn.0047c070
mov r14d, dword [r15 + 0x28]
cmp dword [r13 + 0x18], r14d
cmovbe r14d, dword [r13 + 0x18]
test r14d, r14d
jne 0x474f80
mov rax, qword [rbx]
mov r13d, dword [rax + 0x18]
test r13d, r13d
jne 0x474c1e
jmp 0x474322
mov edx, dword [rbx + 0xac]
cmp edx, 1
jle 0x4743eb
cmp edx, 5
mov eax, 0x40
jle 0x4743eb
cmp edx, 6
mov eax, 0xc0
mov edx, pe_nt_image_headers64
cmove eax, edx
jmp 0x4743eb
mov rax, qword [rbx + 0x30]
jmp 0x4746ee
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 0x474f27
mov rax, qword [r15 + 0x10]
mov qword [r15 + 0x20], rax
jmp 0x474f27
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 0x47411b
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x20], rax
jmp 0x47411b
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 0x47491e
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x47491e
mov edx, r9d
add rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
sub r8d, r9d
call fcn.0047df70
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
jmp 0x4748e8
mov rcx, rbx
call fcn.0047c100
jmp 0x474527
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 0x474985
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x474985
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 0x474193
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x474193
cmp edi, 4
mov dword [rbx + 0x1708], 0
je 0x4753d4
mov ebp, dword [rbx + 0x16f4]
test ebp, ebp
je 0x474500
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x475126
add rax, qword [rbx + 0x50]
mov rdx, rax
xor r9d, r9d
mov rcx, rbx
call fcn.0047c280
mov r12, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [r12 + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.0047c070
mov ebp, dword [r13 + 0x28]
cmp dword [r12 + 0x18], ebp
cmovbe ebp, dword [r12 + 0x18]
test ebp, ebp
je 0x4742fa
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 0x4742fa
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x4742fa
mov eax, 0xfffffffe
jmp 0x473ecb
mov rax, qword [0x004d2c50]
mov rax, qword [rax + 0x20]
mov qword [rsi + 0x20], rax
mov eax, 0xfffffffe
jmp 0x473ecb
mov rax, qword [rbx + 0x30]
jmp 0x4747fe
mov rdx, qword [rbx + 0x10]
mov ecx, dword [rsi + 0x4c]
mov r8d, dword [rbx + 0x28]
call fcn.0047df70
mov dword [rsi + 0x4c], eax
mov rax, qword [rbx + 0x30]
jmp 0x474bb4
mov rax, qword [rbx + 0x30]
mov eax, dword [rax + 0x3c]
jmp 0x4748ef
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 0x4740fd
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 0x474548
mov rdx, qword [r12 + 0x10]
mov qword [r12 + 0x20], rdx
jmp 0x474548
mov eax, 1
jmp 0x473ecb
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 0x475377
cmp dword [rbx + 0xb0], 1
jg 0x4755ec
xor edx, edx
cmp ecx, 1
jle 0x4755ec
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.0047c070
mov ebp, dword [r12 + 0x28]
cmp dword [rsi + 0x18], ebp
cmovbe ebp, dword [rsi + 0x18]
test ebp, ebp
jne 0x4754e6
mov r15d, dword [rbx + 0x28]
test r15d, r15d
jne 0x474329
mov edx, dword [rbx + 8]
jmp 0x473fd1
cmp ecx, 2
ja 0x474e1d
jmp 0x474c4e
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x4753f2
add rax, qword [rbx + 0x50]
mov rdx, rax
mov r9d, 1
mov rcx, rbx
call fcn.0047c280
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r13, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r13
call fcn.0047c070
mov r12d, dword [r13 + 0x28]
cmp dword [rbp + 0x18], r12d
cmovbe r12d, dword [rbp + 0x18]
test r12d, r12d
jne 0x475523
mov rax, qword [rbx]
mov r15d, dword [rax + 0x18]
xor eax, eax
test r15d, r15d
je 0x474313
mov eax, 1
jmp 0x474313
movsxd rax, dword [rbx + 0x84]
mov r8d, dword [rbx + 0x94]
xor edx, edx
sub r8d, eax
test eax, eax
js 0x47546b
add rax, qword [rbx + 0x50]
mov rdx, rax
mov r9d, 1
mov rcx, rbx
call fcn.0047c280
mov rbp, qword [rbx]
mov eax, dword [rbx + 0x94]
mov r12, qword [rbp + 0x28]
mov dword [rbx + 0x84], eax
mov rcx, r12
call fcn.0047c070
mov r13d, dword [r12 + 0x28]
cmp dword [rbp + 0x18], r13d
cmovbe r13d, dword [rbp + 0x18]
test r13d, r13d
je 0x475431
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 0x475431
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x475431
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 0x4753b1
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x4753b1
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 0x475431
mov rax, qword [r13 + 0x10]
mov qword [r13 + 0x20], rax
jmp 0x475431
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 0x4742fa
mov rax, qword [r12 + 0x10]
mov qword [r12 + 0x20], rax
jmp 0x4742fa
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 0x474527
mov dword [rbx + 0x94], 0
mov dword [rbx + 0x84], 0
mov dword [rbx + 0x1708], 0
jmp 0x474527
mov edx, 4
jmp 0x475377
add rcx, 4
jmp 0x474dfe
add rcx, 3
jmp 0x474dfe
add rcx, 2
jmp 0x474dfe
add rcx, 7
jmp 0x474dfe
add rcx, 6
jmp 0x474dfe
add rcx, 5
jmp 0x474dfe