Function at 0x4a0550
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, 0x68
movzx edi, byte [rdx + 0x24]
mov r14d, dword [rsp + 0xe0]
mov r15, qword [rcx + 0x10]
and edi, 1
mov eax, edi
mov rbx, rdx
mov rdx, qword [rdx]
xor eax, 1
mov ebp, r9d
movzx eax, al
mov qword [rsp + 0xc0], r8
mov r12, rcx
mov r9d, dword [rsp + 0xd0]
mov esi, dword [rdx]
mov dword [rsp + 0x48], eax
add eax, esi
add eax, dword [rsp + 0xd8]
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x58], eax
mov eax, dword [rbx + 8]
mov dword [rsp + 0x3c], eax
test r14d, r14d
je 0x4a0a70
mov r13d, ebp
mov rax, r8
sub r13d, r14d
mov esi, dword [rax + 0xc]
test esi, esi
je 0x4a0a60
add esi, 1
mov eax, dword [r12 + 0x44]
mov r8d, r13d
mov rcx, r12
sub eax, 1
cmp r9d, 1
mov dword [r12 + 0x44], eax
mov dword [rbx + 0x1c], eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 5
mov dword [rsp + 0x20], eax
call fcn.0049dce0
test dil, dil
je 0x4a0a90
test r14d, r14d
jne 0x4a061f
mov r8d, dword [rsp + 0xd8]
test r8d, r8d
jg 0x4a0770
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
jg 0x4a07a8
mov eax, dword [rsp + 0x3c]
xor ebp, ebp
lea edi, [r13 + rax]
test esi, esi
je 0x4a09f0
mov r14d, dword [rbx + 0xc]
mov r8d, esi
mov edx, 0x3c
mov rcx, r15
mov r9d, dword [r15 + 0x90]
add r9d, 4
call fcn.0043e160
xor r9d, r9d
mov r8d, r14d
mov edx, 0x20
mov rcx, r15
call fcn.0043e160
mov dword [rsp + 0x20], edi
xor r9d, r9d
mov r8d, r14d
mov edx, 0x28
mov rcx, r15
call fcn.0043e0f0
mov esi, eax
mov rax, qword [r15]
cmp byte [rax + 0x67], 0
je 0x4a0b50
xor r9d, r9d
mov r8d, r14d
mov edx, 0x82
mov rcx, r15
call fcn.0043e160
test ebp, ebp
je 0x4a09f0
movzx edx, byte [rbx + 0x24]
mov r8d, dword [rbx + 0xc]
mov eax, dword [r15 + 0x90]
and edx, 1
cmp eax, dword [r15 + 0x94]
jge 0x4a0bf0
lea ecx, [rax + 1]
sub edx, 0x76
mov dword [r15 + 0x90], ecx
movsxd rcx, eax
lea r9, [rcx + rcx*2]
mov rcx, qword [r15 + 0x88]
lea rcx, [rcx + r9*8]
mov byte [rcx], dl
xor edx, edx
mov word [rcx + 2], dx
mov dword [rcx + 4], r8d
mov dword [rcx + 8], ebp
mov dword [rcx + 0xc], edi
mov qword [rcx + 0x10], 0
mov byte [rcx + 1], 0
mov rdx, qword [r15]
cmp byte [rdx + 0x67], 0
jne 0x4a0736
cdqe
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 0x88]
lea rax, [rax + rdx*8]
mov edx, dword [rsp + 0x58]
sub edx, dword [rsp + 0x3c]
mov byte [rax + 1], 0xfd
mov dword [rax + 0x10], edx
test esi, esi
je 0x4a075c
mov edx, dword [rbx + 0x20]
test edx, edx
je 0x4a0b30
mov rcx, qword [r15]
lea rax, [0x0066e7a0]
cmp byte [rcx + 0x67], 0
je 0x4a0b10
mov dword [rax + 8], edx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x40]
mov r8d, ebp
mov rcx, qword [r12 + 0x10]
mov dword [rsp + 0x20], edx
mov edx, dword [rsp + 0x48]
add eax, r13d
lea r9d, [rax + rdx]
mov edx, 0x4f
call fcn.0043e0f0
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
jle 0x4a062b
mov ecx, dword [r12 + 0x38]
mov rax, qword [rbx + 0x28]
mov r14d, dword [rbx + 8]
mov r10, qword [r12 + 0x10]
lea ebp, [rcx + 1]
mov dword [r12 + 0x38], ebp
test rax, rax
je 0x4a07f3
mov rcx, qword [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x50], r10
mov rdx, qword [rcx + 0x20]
movzx ecx, byte [rax + 4]
mov dword [rsp + 0x20], ecx
mov r8d, dword [rax]
mov rcx, r12
call fcn.0049dce0
mov r10, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x58]
mov dword [rsp + 0x20], ebp
lea r8d, [r13 + r14]
mov rcx, r10
mov edx, 0x61
sub r9d, r14d
call fcn.0043e0f0
mov eax, dword [r12 + 0x38]
mov ecx, dword [rbx + 8]
xor r9d, r9d
lea r14d, [rax + 1]
add eax, ecx
mov dword [rsp + 0x50], ecx
mov dword [r12 + 0x38], eax
test dil, dil
jne 0x4a0af0
mov eax, dword [rsp + 0x40]
mov edx, 0x11
mov rcx, r15
lea r8d, [r13 + rax]
call fcn.0043e160
mov dword [rsp + 0x5c], eax
mov eax, dword [rbx + 8]
mov r9d, r13d
mov r8d, r14d
mov edx, 0x5a
mov rcx, r15
lea rdi, [0x0066e7a0]
mov dword [rsp + 0x20], eax
call fcn.0043e0f0
mov rax, qword [r15]
cmp byte [rax + 0x67], 0
jne 0x4a088b
movsxd rax, dword [rbx + 0x18]
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 0x88]
lea rdi, [rax + rdx*8]
mov rax, qword [r12]
cmp byte [rax + 0x67], 0
jne 0x4a075c
mov r10, qword [rdi + 0x10]
mov eax, dword [rsp + 0x40]
xor edx, edx
sub eax, dword [rsp + 0x50]
add eax, dword [rsp + 0x48]
add eax, dword [rsp + 0xd8]
mov rcx, qword [r10 + 0x18]
mov qword [rsp + 0x48], r10
mov dword [rdi + 8], eax
movzx r8d, word [r10 + 6]
call sub.msvcrt.dll_memset
mov r10, qword [rsp + 0x48]
mov edx, 0xffffffff
mov rcx, r15
mov r9d, 0xfffffff8
mov r8, r10
call fcn.0045e5b0
mov r10, qword [rsp + 0x48]
mov rdx, qword [rbx]
mov rcx, r12
mov r8d, dword [rsp + 0x3c]
movzx r9d, word [r10 + 8]
movzx eax, word [r10 + 6]
sub r9d, eax
sub r9d, 1
call fcn.00456300
xor r9d, r9d
mov edx, 0xe
mov rcx, r15
mov qword [rdi + 0x10], rax
movsxd rdi, dword [r15 + 0x90]
lea r8d, [rdi + 1]
mov dword [rsp + 0x20], r8d
call fcn.0043e0f0
mov eax, dword [r12 + 0x44]
mov edx, 0xa
mov rcx, r15
lea r9d, [rax - 1]
mov eax, dword [r12 + 0x38]
mov dword [r12 + 0x44], r9d
lea r8d, [rax + 1]
mov dword [rbx + 0x14], r9d
mov dword [r12 + 0x38], r8d
mov dword [rbx + 0x10], r8d
call fcn.0043e160
mov r8d, dword [rbx + 0xc]
xor r9d, r9d
mov rcx, r15
mov edx, 0x92
call fcn.0043e160
test esi, esi
jne 0x4a0bd0
mov rcx, qword [r15]
mov edx, dword [r15 + 0x90]
lea rax, [0x0066e7a0]
cmp byte [rcx + 0x67], 0
je 0x4a0bb0
mov dword [rax + 8], edx
mov eax, dword [rbx + 8]
mov edx, 0x4f
mov r9d, r14d
mov rcx, qword [r12 + 0x10]
mov r8d, r13d
mov dword [rsp + 0x20], eax
call fcn.0043e0f0
mov rcx, qword [r15]
mov edx, dword [r15 + 0x90]
lea rax, [0x0066e7a0]
cmp byte [rcx + 0x67], 0
je 0x4a0b80
mov dword [rax + 8], edx
mov eax, dword [rsp + 0x3c]
lea edi, [r13 + rax]
test esi, esi
je 0x4a06a9
jmp 0x4a063e
mov ecx, dword [r12 + 0x38]
mov rax, qword [rbx + 0x28]
mov r14d, dword [rbx + 8]
mov r10, qword [r12 + 0x10]
lea ebp, [rcx + 1]
mov dword [r12 + 0x38], ebp
test rax, rax
je 0x4a0a3b
mov rcx, qword [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x40], r10
mov rdx, qword [rcx + 0x20]
movzx ecx, byte [rax + 4]
mov dword [rsp + 0x20], ecx
mov r8d, dword [rax]
mov rcx, r12
call fcn.0049dce0
mov r10, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x58]
mov dword [rsp + 0x20], ebp
lea r8d, [r13 + r14]
mov rcx, r10
mov edx, 0x61
sub r9d, r14d
call fcn.0043e0f0
jmp 0x4a06b1
mov esi, dword [rax + 8]
jmp 0x4a05d5
mov eax, dword [rcx + 0x38]
lea r13d, [rax + 1]
add eax, dword [rsp + 0x58]
mov dword [rcx + 0x38], eax
mov rax, r8
jmp 0x4a05c7
mov eax, dword [rsp + 0x40]
mov r8d, dword [rbx + 0xc]
lea r9d, [r13 + rax]
movsxd rax, dword [r15 + 0x90]
cmp eax, dword [r15 + 0x94]
jge 0x4a0c10
lea edx, [rax + 1]
mov dword [r15 + 0x90], edx
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], r8d
mov dword [rax + 8], r9d
mov dword [rax + 0xc], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x7e
jmp 0x4a0609
mov r8d, dword [rbx + 0xc]
mov edx, 0x78
mov rcx, r15
call fcn.0043e160
mov dword [rsp + 0x5c], eax
jmp 0x4a084e
mov rax, qword [r15 + 0x88]
movsxd rsi, esi
lea rcx, [rsi + rsi*2]
lea rax, [rax + rcx*8]
jmp 0x4a0759
mov rcx, qword [r15]
mov edx, dword [r15 + 0x90]
lea rax, [0x0066e7a0]
cmp byte [rcx + 0x67], 0
jne 0x4a0759
jmp 0x4a0b10
movsxd rax, esi
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 0x88]
lea rax, [rax + rdx*8]
mov edx, dword [rsp + 0x40]
sub edx, dword [rsp + 0x3c]
mov byte [rax + 1], 0xfd
mov dword [rax + 0x10], edx
jmp 0x4a0696
mov rax, qword [r15 + 0x88]
lea rcx, [rdi + rdi*2]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
mov eax, dword [rsp + 0x3c]
lea edi, [r13 + rax]
test esi, esi
je 0x4a06a9
jmp 0x4a063e
movsxd rax, dword [rsp + 0x5c]
lea rcx, [rax + rax*2]
mov rax, qword [r15 + 0x88]
lea rax, [rax + rcx*8]
jmp 0x4a0995
mov r9d, dword [rbx + 0x1c]
mov r8d, esi
mov edx, 0x11
mov rcx, r15
call fcn.0043e160
jmp 0x4a097a
mov dword [rsp + 0x20], edi
movzx edx, dl
mov r9d, ebp
mov rcx, r15
add edx, 0x8a
call fcn.0043df10
jmp 0x4a070d
mov dword [rsp + 0x20], 0
mov edx, 0x7e
mov rcx, r15
call fcn.0043df10
jmp 0x4a0609