Function at 0x4e9240
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov dword [rsp + 0x40], r9d
mov r13, r8
mov rbx, rcx
mov r12, qword [rcx + 0x10]
mov byte [r8], 1
cmp dword [r8 + 0x38], 0
jle 0x4e96d8
mov dword [rsp + 0x3c], edx
mov r14, qword [r13 + 0x30]
xor edi, edi
xor esi, esi
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], r12
jmp 0x4e92b7
mov eax, dword [r12 + 0x90]
mov rcx, qword [rcx + 0x50]
movsxd rdx, edi
mov dword [rcx + rdx*4], eax
mov edi, dword [rsp + 0x44]
add edi, 1
add r14, 0x20
cmp edi, dword [r13 + 0x38]
jge 0x4e96cd
mov dword [rsp + 0x38], esi
mov rax, qword [r14]
mov r15, qword [rax + 0x20]
mov ecx, dword [rax + 4]
mov edx, ecx
xor edx, 0xfeffffff
test edx, ecx
mov dword [rsp + 0x44], edi
je 0x4e9370
mov rax, qword [rax + 0x40]
mov rbp, qword [rax + 0x48]
cmp dword [r13 + 0x2c], 0
je 0x4e93c0
mov esi, dword [rsp + 0x3c]
test esi, esi
setne al
mov rcx, qword [r14 + 8]
mov ecx, dword [rcx + 4]
not ecx
or ecx, 0xffffffdf
cmp ecx, 0xffffffff
sete cl
cmp al, cl
je 0x4e93c0
test esi, esi
je 0x4e93c0
cmp dword [rsp + 0x38], 0
je 0x4e9381
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e93a0
lea ecx, [rax + 1]
mov dword [r12 + 0x90], ecx
mov rcx, qword [r12 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x50
mov dword [rcx + rax*8 + 4], esi
mov edx, dword [rsp + 0x38]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4e93c0
xor edi, edi
test r15, r15
jne 0x4e93e2
xor ebp, ebp
xor r13d, r13d
jmp 0x4e9488
mov eax, dword [rbx + 0x38]
add eax, 1
mov dword [rsp + 0x38], eax
mov dword [rbx + 0x38], eax
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jg 0x4e9330
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x50
mov r8d, esi
mov r9d, dword [rsp + 0x38]
call fcn.0047df60
nop dword [rax]
mov edi, dword [rbx + 0x44]
add edi, 0xffffffff
mov dword [rbx + 0x44], edi
mov rcx, rbx
mov rdx, rbp
mov r8d, edi
mov r9d, 0x10
call fcn.004cdaa0
test r15, r15
je 0x4e9377
mov r13d, dword [r15]
cmp r13d, 1
jne 0x4e9410
mov al, byte [rbx + 0x1f]
test al, al
je 0x4e9436
add al, 0xff
mov byte [rbx + 0x1f], al
movzx eax, al
mov ebp, dword [rbx + rax*4 + 0xd8]
jmp 0x4e9440
mov eax, dword [rbx + 0x28]
sub eax, r13d
jge 0x4e9426
mov eax, dword [rbx + 0x38]
lea ebp, [rax + 1]
add eax, r13d
mov dword [rbx + 0x38], eax
jmp 0x4e9440
mov ebp, dword [rbx + 0x2c]
lea ecx, [rbp + r13]
mov dword [rbx + 0x2c], ecx
mov dword [rbx + 0x28], eax
jmp 0x4e9440
mov ebp, dword [rbx + 0x38]
add ebp, 1
mov dword [rbx + 0x38], ebp
nop
mov byte [rsp + 0x20], 1
mov rcx, rbx
mov rdx, r15
mov r8d, ebp
xor r9d, r9d
call fcn.004cb5d0
mov r8d, dword [r14 + 0x14]
test r8d, r8d
js 0x4e9488
test edi, edi
jne 0x4e946c
mov edi, dword [rbx + 0x44]
add edi, 0xffffffff
mov dword [rbx + 0x44], edi
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], r15
mov rcx, rbx
mov edx, dword [rsp + 0x40]
mov r9d, edi
call fcn.0050ac00
mov dword [r14 + 0x14], eax
mov rax, qword [r14 + 8]
mov eax, dword [rax + 4]
mov ecx, eax
xor ecx, 0xffffffdf
test ecx, eax
je 0x4e9530
test r13d, r13d
jle 0x4e9500
add r15, 8
xor esi, esi
mov r12d, 1
nop dword [rax]
mov rdx, qword [r15]
mov rcx, rbx
call fcn.0047fd40
test rax, rax
setne cl
cmp r12d, r13d
setl dl
cmp dl, cl
je 0x4e94df
add esi, 1
add r15, 0x20
lea ecx, [r12 + 1]
cmp r12d, r13d
mov r12d, ecx
jl 0x4e94b0
test rax, rax
mov r12, qword [rsp + 0x50]
je 0x4e9500
mov esi, dword [rsp + 0x38]
test esi, esi
jne 0x4e9610
jmp 0x4e9513
mov rax, qword [rbx]
mov rax, qword [rax + 0x10]
mov esi, dword [rsp + 0x38]
test esi, esi
jne 0x4e9610
mov rcx, qword [rsp + 0x48]
cmp dword [rcx + 0x2c], 0
je 0x4e960d
mov esi, dword [rbx + 0x38]
add esi, 1
mov dword [rbx + 0x38], esi
jmp 0x4e9610
mov esi, dword [rsp + 0x38]
mov eax, dword [r14 + 0x10]
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x4e9652
mov dword [rsp + 0x20], eax
mov rcx, r12
mov edx, 0xa2
xor r8d, r8d
mov r9d, ebp
call fcn.0047df60
mov r8, qword [r14 + 8]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
je 0x4e9694
mov edx, 0xfffffff9
call fcn.00444fc0
mov eax, dword [r12 + 0x90]
test eax, eax
jle 0x4e95ad
mov ecx, r13d
xor ecx, 0xffffff00
and ecx, r13d
mov rdx, qword [r12 + 0x88]
add eax, 0xffffffff
lea rax, [rax + rax*2]
mov word [rdx + rax*8 + 2], cx
cmp r13d, 1
jne 0x4e95d0
test ebp, ebp
je 0x4e95dd
movzx eax, byte [rbx + 0x1f]
cmp rax, 7
ja 0x4e95dd
lea ecx, [rax + 1]
mov byte [rbx + 0x1f], cl
mov dword [rbx + rax*4 + 0xd8], ebp
jmp 0x4e95dd
cmp dword [rbx + 0x28], r13d
jge 0x4e95dd
mov dword [rbx + 0x28], r13d
mov dword [rbx + 0x2c], ebp
test edi, edi
mov r13, qword [rsp + 0x48]
je 0x4e92a2
mov rcx, qword [r12 + 0x18]
not edi
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
jns 0x4e9290
mov rdx, r12
mov r8d, edi
call fcn.004d3e00
jmp 0x4e92a2
xor esi, esi
nop
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], 0xfffffffe
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x55
mov r8d, esi
xor r9d, r9d
call fcn.004c62a0
mov eax, dword [r14 + 0x10]
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jle 0x4e954e
lea edx, [rcx + 1]
mov dword [r12 + 0x90], edx
mov rdx, qword [r12 + 0x88]
lea rcx, [rcx + rcx*2]
mov qword [rdx + rcx*8], 0xa2
mov dword [rdx + rcx*8 + 8], ebp
mov dword [rdx + rcx*8 + 0xc], eax
mov qword [rdx + rcx*8 + 0x10], 0
mov r8, qword [r14 + 8]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
jne 0x4e9577
mov rax, qword [r12 + 0x88]
mov ecx, dword [r12 + 0x90]
add ecx, 0xffffffff
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
mov byte [rax + rcx*8 + 1], 0xf9
mov qword [rax + rcx*8 + 0x10], r8
mov eax, dword [r12 + 0x90]
test eax, eax
jg 0x4e958d
jmp 0x4e95ad
mov r8d, esi
test esi, esi
mov edx, dword [rsp + 0x3c]
jne 0x4e96f4
mov ebp, dword [r13 + 0x2c]
test ebp, ebp
sete al
test edx, edx
sete cl
xor r15d, r15d
or ebp, edx
je 0x4e9734
xor cl, al
mov r8d, edx
jne 0x4e9734
mov r15d, dword [r12 + 0x90]
cmp dword [r12 + 0x94], r15d
jle 0x4e9740
movsxd rax, r15d
lea ecx, [rax + 1]
mov dword [r12 + 0x90], ecx
mov rcx, qword [r12 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0xf
mov dword [rcx + rax*8 + 4], r8d
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
cmp dword [r13 + 0x2c], 0
jg 0x4e9766
jmp 0x4e982a
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0xf
xor r9d, r9d
call fcn.0047df60
mov r15d, eax
cmp dword [r13 + 0x2c], 0
jle 0x4e982a
mov rsi, qword [r13 + 0x20]
add rsi, 0x14
xor ebp, ebp
jmp 0x4e97bd
lea edi, [r8 + 1]
mov dword [rcx + 0x90], edi
mov rcx, qword [rcx + 0x88]
lea rdi, [r8 + r8*2]
mov byte [rcx + rdi*8], dl
mov word [rcx + rdi*8 + 2], 0
mov dword [rcx + rdi*8 + 4], eax
mov dword [rcx + rdi*8 + 8], r14d
mov dword [rcx + rdi*8 + 0xc], 0
mov qword [rcx + rdi*8 + 0x10], 0
mov byte [rcx + rdi*8 + 1], 0
add ebp, 1
add rsi, 0x20
cmp ebp, dword [r13 + 0x2c]
jge 0x4e982a
cmp qword [rbx + 0x10], 0
je 0x4e97b0
mov rdi, qword [rsi - 0xc]
mov r14d, dword [rsi]
mov rcx, rbx
mov rdx, rdi
mov r8d, r14d
call fcn.004c68a0
cmp eax, r14d
je 0x4e97b0
test rdi, rdi
je 0x4e97f8
mov ecx, dword [rdi + 4]
not ecx
or ecx, 0xffbfffff
mov edx, 0x50
cmp ecx, 0xffffffff
jne 0x4e97fd
mov edx, 0x51
mov rcx, qword [rbx + 0x10]
movsxd r8, dword [rcx + 0x90]
cmp dword [rcx + 0x94], r8d
jg 0x4e9772
mov dword [rsp + 0x20], 0
mov r8d, eax
mov r9d, r14d
call fcn.0047df60
jmp 0x4e97b0
mov byte [r13], 0
test r15d, r15d
je 0x4e987e
mov eax, dword [r12 + 0x90]
lea ecx, [rax - 1]
cmp ecx, r15d
jne 0x4e984e
mov dword [r12 + 0x90], r15d
jmp 0x4e987e
mov rdx, qword [r12]
cmp byte [rdx + 0x67], 0
je 0x4e9861
lea rcx, [0x0213b3e8]
jmp 0x4e987b
test r15d, r15d
cmovns ecx, r15d
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r12 + 0x88]
mov dword [rcx + 8], eax
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret