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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov al, byte [eax + 0x10]
mov ah, 0x80
mov byte [esp + 3], al
sub ah, al
mov cl, ah
and cl, 0x78
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x78], xmm0
pxor xmm0, xmm0
movdqu xmmword [esp + 0x68], xmm0
mov al, ah
and al, 7
shr cl, 3
neg cl
movsx esi, cl
mov ebp, dword [esp + esi + 0x80]
mov ebx, dword [esp + esi + 0x84]
mov ecx, eax
shld ebx, ebp, cl
shl ebp, cl
not cl
mov edx, dword [esp + esi + 0x7c]
mov edi, edx
shr edi, 1
shr edi, cl
or edi, ebp
mov ebp, dword [esp + esi + 0x78]
mov esi, ebp
mov ecx, eax
shl esi, cl
shld edx, ebp, cl
xor ecx, ecx
test ah, ah
cmovs edi, ecx
cmovs ebx, ecx
cmovs edx, ecx
cmovs esi, ecx
bswap ebx
and ebx, dword [esp + 0x40]
mov eax, ebx
rol bx, 8
mov word [esp + 8], bx
shr eax, 0x10
rol ax, 8
mov word [esp + 0xa], ax
bswap edi
bswap esi
bswap edx
and edi, dword [esp + 0x34]
and edx, dword [esp + 0x38]
and esi, dword [esp + 0x3c]
mov eax, edi
shr eax, 0x10
mov ebx, esi
shr ebx, 0x10
mov ebp, edx
shr ebp, 0x10
rol di, 8
rol ax, 8
rol dx, 8
rol bp, 8
rol si, 8
rol bx, 8
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0xa0]
movzx ebx, word [ebx]
mov word [esp], bx
rol word [esp], 8
mov word [esp + 0xc], di
mov edi, dword [esp + 0xa0]
movzx ebx, word [edi + 2]
rol bx, 8
mov word [esp + 4], bx
mov word [esp + 0xe], ax
movzx eax, word [edi + 4]
rol ax, 8
mov word [esp + 6], ax
mov word [esp + 0x10], dx
movzx edx, word [edi + 6]
rol dx, 8
mov word [esp + 0x12], bp
movzx eax, word [edi + 8]
rol ax, 8
mov word [esp + 0x14], si
movzx esi, word [edi + 0xa]
rol si, 8
mov ebx, dword [esp + 0x28]
mov word [esp + 0x16], bx
movzx ebx, word [edi + 0xc]
rol bx, 8
movzx edi, word [edi + 0xe]
rol di, 8
movzx ebp, word [esp]
mov word [esp + 0x18], bp
movzx ebp, word [esp + 4]
mov word [esp + 0x1a], bp
movzx ebp, word [esp + 6]
mov word [esp + 0x1c], bp
mov word [esp + 0x28], dx
mov word [esp + 0x1e], dx
mov ebp, eax
mov word [esp + 0x20], ax
mov word [esp + 0x32], si
mov word [esp + 0x22], si
mov word [esp + 0x2e], bx
mov word [esp + 0x24], bx
mov word [esp + 0x30], di
mov word [esp + 0x26], di
mov eax, 0xff
cmp ecx, 8
je 0x10058ad8
movzx esi, word [esp + ecx*2 + 8]
xor edx, edx
cmp si, word [esp + ecx*2 + 0x18]
lea ecx, [ecx + 1]
setne dl
cmovb edx, eax
test dl, dl
je 0x10058aaf
inc dl
cmp dl, 1
ja 0x10058c37
mov ah, byte [esp + 3]
mov cl, ah
and cl, 0x78
pxor xmm0, xmm0
movdqu xmmword [esp + 0x58], xmm0
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x48], xmm0
mov al, ah
and al, 7
shr cl, 3
mov word [esp + 0x2c], bp
movzx ebp, cl
mov esi, dword [esp + ebp + 0x4c]
mov dword [esp + 0x44], esi
mov ecx, eax
shr esi, cl
not cl
mov ebx, dword [esp + ebp + 0x50]
lea edi, [ebx + ebx]
shl edi, cl
mov edx, dword [esp + ebp + 0x54]
mov ecx, eax
shrd ebx, edx, cl
or edi, esi
mov ebp, dword [esp + ebp + 0x48]
shr edx, cl
mov esi, dword [esp + 0x44]
shrd ebp, esi, cl
xor ecx, ecx
test ah, ah
cmovs ebx, ecx
cmovs edi, ecx
cmovs ebp, ecx
cmovs edx, ecx
bswap ebx
or ebx, dword [esp + 0x34]
bswap edi
or edi, dword [esp + 0x38]
bswap ebp
or ebp, dword [esp + 0x3c]
bswap edx
or edx, dword [esp + 0x40]
movzx eax, word [esp]
mov word [esp + 8], ax
movzx eax, word [esp + 4]
mov word [esp + 0xa], ax
movzx eax, word [esp + 6]
mov word [esp + 0xc], ax
movzx eax, word [esp + 0x28]
mov word [esp + 0xe], ax
movzx eax, word [esp + 0x2c]
mov word [esp + 0x10], ax
movzx eax, word [esp + 0x32]
mov word [esp + 0x12], ax
movzx eax, word [esp + 0x2e]
mov word [esp + 0x14], ax
movzx eax, word [esp + 0x30]
mov word [esp + 0x16], ax
mov eax, edx
rol dx, 8
mov word [esp + 0x18], dx
shr eax, 0x10
rol ax, 8
mov word [esp + 0x1a], ax
mov eax, ebx
rol bx, 8
mov word [esp + 0x1c], bx
shr eax, 0x10
rol ax, 8
mov word [esp + 0x1e], ax
mov eax, edi
rol di, 8
mov word [esp + 0x20], di
shr eax, 0x10
rol ax, 8
mov word [esp + 0x22], ax
mov eax, ebp
rol bp, 8
mov word [esp + 0x24], bp
shr eax, 0x10
rol ax, 8
mov word [esp + 0x26], ax
mov eax, 0xff
cmp ecx, 8
je 0x10058c2b
movzx esi, word [esp + ecx*2 + 8]
xor edx, edx
cmp si, word [esp + ecx*2 + 0x18]
lea ecx, [ecx + 1]
setne dl
cmovb edx, eax
test dl, dl
je 0x10058c0b
jmp 0x10058c2d
xor edx, edx
inc dl
cmp dl, 2
setb al
jmp 0x10058c39
xor eax, eax
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret