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

Disassembly:
xor al, 0xc2
cmp di, bx
clc
cmc
sub al, 0x57
push dword [esp]
stc
pushfd
cmc
rol al, 6
call fcn.004fc5a5
add byte [eax], al
aas
aas
aas
and al, 0x62
popal
jae 0x508902
arpl word [edi + 0x6f], bx
jae 0x508912
jb 0x508905
popal
insd dword es:[edi], dx
inc eax
pop edi
push edi
push ebp
aas
and al, 0x63
push 0x745f7261
jb 0x508911
imul esi, dword [ebx + esi*2 + 0x40], 0x7340575f
je 0x50891e
inc eax
inc eax
inc eax
jae 0x508933
inc eax
inc eax
push ecx
inc ecx
inc ebp
inc ecx
inc ecx
push esi
xor byte [ecx], dh
inc eax
push eax
inc ecx
inc ecx
inc ecx
push esi
xor byte [ecx], dh
inc eax
inc ecx
inc ecx
push esi
xor byte [ecx], dh
inc eax
inc eax
pop edx
inc eax
pop edx
add byte [eax], al
add byte [ebp + 0x6e], al
je 0x50894a
jb 0x50892a
jb 0x508952
je 0x508954
arpl word [ecx + 0x6c], sp
push ebx
arpl word gs:[ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
add byte [ecx + ecx*4 - 0x77fbdbbc], bl
and al, 0x24
pushfd
mov byte [esp], 0x9d
popfd
mov word [esp], cx
or al, 0x24
push dword [esp + 8]
ret 0xc
aas
xor dword [edi], edi
and al, 0x62
popal
jae 0x508982
arpl word [edi + 0x69], bx
outsd dx, dword [esi]
jae 0x50895f
inc eax
pop edi
push edi
push ebp
aas
and al, 0x63
push 0x745f7261
jb 0x50898d
imul esi, dword [ebx + esi*2 + 0x40], 0x7340575f
je 0x50899a
jae 0x5089a9
inc eax
inc eax
inc eax
inc eax
jae 0x5089af
inc eax
inc eax
push ebp
inc ecx
inc ebp
inc eax
pop eax
pop edx
add byte [eax], al
add byte [ebx + 0x6c], al
outsd dx, dword [esi]
jae 0x5089b1
push ebx
jb 0x5089c6
imul esp, dword [ebx + 0x65], 0x646e6148
insb byte es:[edi], dx
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
add byte gs:[eax - 0x77], ah
sbb al, 0x24
mov dword [esp + 0x1c], 0xcce4ac30
call fcn.005049e3
add byte [eax], al
inc ebx
jb 0x5089e9
inc esp
and al, 0x1c
xor byte [esp - 0x3f871734], ch
invalid
jo 0x5089e6
inc esp
arpl word gs:[edx + 0x79], si
jo 0x5089ed
add dh, al
inc esp
and al, 4
or eax, 0x2444899c
inc esp
and al, 0x44
xchg esi, eax
stc
add byte [eax], al
add byte [edi], bh
aas
xor byte [edi], bh
and al, 0x62
popal
jae 0x508a0f
arpl word [edi + 0x73], bx
je 0x508a1d
popal
insd dword es:[edi], dx
bound esi, qword [ebp + 0x66]
jne 0x508a17
inc eax
inc esp
push ebp
aas
and al, 0x63
push 0x745f7261
jb 0x508a1f
imul esi, dword [ebx + esi*2 + 0x40], 0x74734044
inc eax
inc eax
inc eax
jae 0x508a40
inc eax
inc eax
dec ecx
inc ecx
inc ebp
inc eax
pop eax
pop edx
add byte [eax], al
add byte [ebx + 0x72], al
popal
je 0x508a43
inc esp
imul esi, dword [edx + 0x65], 0x726f7463
jns 0x508a3f
add byte [eax], al
add byte [edi + 0x65], al
add byte [eax], al
inc edi
je 0x508a35
je 0x508a35
imul ebp, dword [ebp + 0x56], 0x69737265
outsd dx, dword [esi]
outsb dx, byte [esi]
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
push edi
add byte [eax], al
add byte [edi], bh
js 0x508a77
jo 0x508a7b
je 0x508a76
inc eax
aas
and al, 0x62
popal
jae 0x508a78
arpl word [edi + 0x73], bx
je 0x508a86
popal
insd dword es:[edi], dx
bound esi, qword [ebp + 0x66]
inc eax
pop edi
push edi
push ebp
aas
and al, 0x63
push 0x745f7261
jb 0x508a89
imul esi, dword [ebx + esi*2 + 0x40], 0x7340575f
je 0x508a96
inc eax
inc eax
inc eax
jae 0x508aab
inc eax
inc eax
dec ebp
inc ecx
inc ebp
pop edi
dec edx
push eax
inc edx
pop edi
push edi
pop edi
dec edx
inc eax
pop edx
add byte [ecx - 0x37547214], cl
mov esp, ebp
lea ebp, [ebx - 0x46f19538]
movsx bp, cl
test eax, edi
clc
add eax, edi
add byte [eax], al
aas
mov dword [esp + 8], 0xd3320e71
push dword [esp + 0x18]
push edx
lea esp, [esp + 0x50]
jbe 0x501a7f
shld ecx, edi, cl
shr edi, cl
mov edi, dword [edx + 0x24]
shr bh, 5
dec bh
adc bx, 0x16ad
add edi, eax
test dl, 0xec
ror bh, cl
mov ebx, dword [edx + 0x20]
mov cx, si
bts cx, bp
add ebx, eax
shr ch, cl
sbb cx, cx
mov dword [ebp - 8], 0
clc
mov ecx, dword [edx + 0x18]
push 0xa41ca9ba
stc
test ah, 0xf8
cmp ecx, dword [ebp - 8]
mov dword [esp], ebx
pushal
lea esp, [esp + 0x24]
jbe fcn.00502b3e
mov esi, ebx
not si
sub ecx, 1
cmc
ror si, cl
mov dword [ebp - 4], ecx
dec si
setb cl
shrd cx, bx, 1
rcl edi, cl
mov ecx, dword [ebp - 8]
not si
add ecx, dword [ebp - 4]
xchg si, di
test edi, ebx
movsx di, cl
bt bx, 4
shr ecx, 1
or si, 0xc678
add si, 0x4ad0
rcl si, 1
mov edi, dword [ebx + ecx*4]
push 0xa8067db2
movzx si, al
bts si, 6
sub si, sp
add edi, eax
movsx si, bl
movzx si, dl
mov esi, dword [ebp + 0xc]
pushal
mov dword [esp + 0x20], eax
setbe al
lodsb al, byte [esi]
bt edi, 0x1f
mov word [esp], bp
rol al, 2
push 0x384c2d26
jmp 0x508877