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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
mov dword [ebp - 0x38], ecx
mov esi, dword [ebp + 8]
mov eax, dword [0x597010]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
dec eax
cmp eax, 3
ja case.default.0x50e7f6
mov dl, 1
xor ebx, ebx
xor ecx, ecx
jmp dword [eax*4 + 0x58eea8]
mov cx, 9
mov bl, 1
xor edx, edx
jmp case.0x50e7f6.1
mov cx, 5
jmp 0x50e81b
mov cx, 0xc
jmp 0x50e81b
call fcn.0047b030
xor ecx, ecx
dec ecx
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 0x38]
mov word [ebx + 0x48], cx
mov eax, dword [esi]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
ror eax, 0x10
mov dword [ebx + 0x4a], eax
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov byte [ebx + 0x4e], al
cmp byte [ebp - 0x34], 0
je 0x50e932
xor eax, eax
dec eax
lea ebx, [ebp - 0x28]
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push ebx
call edi
movzx eax, byte [ebx + 0xb]
test al, al
mov ecx, dword [ebx + 4]
mov edx, eax
cmovs edx, ecx
cmp edx, 0xc
jne 0x50ec29
xor edx, edx
dec edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], edx
xor edx, edx
mov esi, dword [ebp - 0x28]
test al, al
js 0x50e8b8
mov edi, ebx
cmp edx, eax
jbe 0x50e8c2
jmp 0x50ec26
mov edi, esi
cmp ecx, edx
jb 0x50ec26
mov edi, dword [edi + edx]
mov dword [ebp + edx - 0x1c], edi
add edx, 4
cmp edx, 0xc
jne 0x50e8a9
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x38]
mov dword [edi + 0x68], ecx
mov dword [edi + 0x6c], edx
mov dword [edi + 0x70], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi]
mov ebx, dword [eax + 0x1c]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov dword [ebp - 0x34], eax
mov eax, dword [esi]
mov ebx, dword [eax + 0x18]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov dword [edi + 0x74], eax
mov eax, dword [ebp - 0x34]
mov dword [edi + 0x78], eax
mov bl, byte [ebp - 0x1d]
movzx edi, bl
test bl, bl
js 0x50ea6a
sete cl
lea eax, [ebp - 0x28]
mov edx, edi
jmp 0x50ea7f
cmp byte [ebp - 0x3c], 0
mov ebx, esi
je 0x50eb06
mov eax, dword [ebx]
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
test al, 0x10
mov ecx, 4
mov esi, 0x104
cmove esi, ecx
mov edi, edx
shld edx, eax, 0xd
mov dword [ebp - 0x34], edx
mov ecx, 0x2000
and edx, ecx
mov dword [ebp - 0x50], edx
and ecx, edi
mov dword [ebp - 0x4c], ecx
mov ecx, edi
shr edi, 2
and edi, 0x10000000
or edi, esi
mov edx, eax
and edx, 0x40
mov dword [ebp - 0x40], edx
mov esi, eax
shr esi, 0x14
and esi, 8
and dword [ebp - 0x34], 0x40
shr eax, 0x10
and eax, 0x400
mov dword [ebp - 0x44], eax
shr ecx, 9
and ecx, 0x20000
mov dword [ebp - 0x48], ecx
mov eax, dword [ebx]
mov ebx, dword [eax + 0x20]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, dword [ebp + 8]
call ebx
mov ebx, eax
shr eax, 0x1b
and eax, 1
mov dword [ebp - 0x3c], eax
shr ebx, 0x18
and ebx, 0xffffff80
or ebx, edi
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edi, dword [eax + 0x24]
mov ecx, edi
call dword [section..00cfg]
mov ecx, dword [ebp + 8]
call edi
and eax, 1
shl eax, 0x16
or eax, ebx
mov ecx, dword [ebp - 0x40]
lea ecx, [esi + ecx*8]
add ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
lea esi, [ecx + edx*2]
add esi, dword [ebp - 0x48]
or esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edi, dword [eax + 0x40]
mov ecx, edi
call dword [section..00cfg]
mov ecx, dword [ebp + 8]
call edi
mov ebx, esi
or ebx, 0x1000
test al, al
cmove ebx, esi
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edi, dword [eax + 0x28]
mov ecx, edi
call dword [section..00cfg]
mov ecx, dword [ebp + 8]
call edi
mov ecx, ebx
or ecx, 0x800
test al, al
cmove ecx, ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x6c], eax
mov dword [esi + 0x68], ecx
xor eax, eax
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], eax
jmp 0x50eb06
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
test edx, edx
sete cl
je 0x50ea7f
test eax, eax
je 0x50ec2c
cmp edx, 0xc
jne 0x50ea9c
test cl, cl
jne 0x50eada
push 0xc
push str.AuthenticAMD
push eax
call fcn.0052a60d
add esp, 0xc
test eax, eax
je 0x50eada
test bl, bl
js 0x50eaa8
sete cl
lea eax, [ebp - 0x28]
jmp 0x50eabd
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
test edi, edi
sete cl
je 0x50eabd
test eax, eax
je 0x50ec2f
cmp edi, 0xc
jne 0x50eaf4
test cl, cl
jne 0x50eada
push 0xc
push str.HygonGenuine
push eax
call fcn.0052a60d
add esp, 0xc
test eax, eax
jne 0x50eaf4
mov eax, dword [esi]
mov edi, dword [eax + 0x20]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x7c], eax
mov bl, byte [ebp - 0x1d]
test bl, bl
jns 0x50eb03
push dword [ebp - 0x28]
call fcn.00528424
add esp, 4
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov edi, dword [eax + 0x2c]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
lea ecx, [eax - 1]
cmp ecx, 6
jae 0x50eb28
mov eax, dword [eax*4 + 0x58ee8c]
jmp 0x50eb30
call fcn.0047b030
xor eax, eax
dec eax
mov esi, dword [ebp - 0x38]
mov dword [esi + 0x5c], eax
mov eax, dword [ebx]
mov edi, dword [eax + 0x30]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
add al, al
or al, 1
mov byte [esi + 0x4f], al
xor eax, eax
dec eax
lea ecx, [ebp - 0x28]
mov dword [ecx], eax
lea ecx, [ebp - 0x2c]
mov dword [ecx], eax
lea ecx, [ebp - 0x30]
mov dword [ecx], eax
xor eax, eax
lea esi, [ebp - 0x1c]
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov eax, dword [ebx]
mov edi, dword [eax + 0x34]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
push esi
lea esi, [ebp - 0x30]
push esi
lea eax, [ebp - 0x2c]
push eax
lea ebx, [ebp - 0x28]
push ebx
call edi
mov eax, dword [esi]
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x2c]
mov ecx, dword [ecx]
mov edx, dword [ebx]
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
mov dword [esi + 0x58], eax
mov ecx, dword [esi + 0x80]
test ecx, ecx
jne 0x50ebf8
sub esi, 0xffffff80
push 0x4c
call fcn.005283f4
add esp, 4
mov edi, eax
xorps xmm0, xmm0
movups xmmword [eax + 4], xmm0
movups xmmword [eax + 0x14], xmm0
movups xmmword [eax + 0x24], xmm0
xor ebx, ebx
mov dword [eax + 0x38], ebx
mov dword [eax + 0x34], ebx
push 4
call fcn.005283f4
add esp, 4
mov dword [eax], ebx
mov dword [edi + 0x3c], eax
mov dword [edi + 0x48], ebx
mov dword [edi + 0x40], ebx
mov dword [edi + 0x44], ebx
mov dword [edi], 0x57c368
mov ecx, esi
push edi
call fcn.0050ec32
mov ecx, dword [esi]
lea eax, [ebp - 0x1c]
push eax
call fcn.0052175e
cmp byte [ebp - 0x11], 0
jns 0x50ec12
push dword [ebp - 0x1c]
call fcn.00528424
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00528e13
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret 4
int3
int3
int3
int3