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

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
sub esp, 0x3c
lea eax, [ecx + 0x100]
cdq
and edx, 0x1f
add eax, edx
push ebx
mov ebx, dword [ebp + 8]
sar eax, 5
test ebx, ebx
je 0x588b34
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x588b34
cmp ecx, 0x80
je 0x588021
cmp ecx, 0xc0
je 0x588021
cmp ecx, 0x100
je 0x588021
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [edx + 0x110], eax
lea eax, [ecx - 0x80]
movzx ecx, byte [ebx + 1]
cdq
and edx, 0x3f
add eax, edx
movzx edx, byte [ebx]
sar eax, 6
shl eax, 4
add eax, 0x658890
shl edx, 8
mov dword [ebp - 0x28], eax
xor edx, ecx
movzx eax, byte [ebx + 2]
movzx ecx, byte [ebx + 4]
shl edx, 8
xor edx, eax
shl ecx, 8
movzx eax, byte [ebx + 3]
shl edx, 8
xor edx, eax
movzx eax, byte [ebx + 5]
xor ecx, eax
mov dword [ebp - 4], edx
movzx eax, byte [ebx + 6]
shl ecx, 8
xor ecx, eax
movzx eax, byte [ebx + 7]
push esi
movzx esi, byte [ebx + 8]
shl ecx, 8
xor ecx, eax
shl esi, 8
movzx eax, byte [ebx + 9]
xor esi, eax
mov dword [ebp - 8], ecx
movzx eax, byte [ebx + 0xa]
shl esi, 8
xor esi, eax
movzx eax, byte [ebx + 0xb]
push edi
movzx edi, byte [ebx + 0xc]
shl edi, 8
shl esi, 8
xor esi, eax
movzx eax, byte [ebx + 0xd]
xor edi, eax
mov dword [ebp - 0xc], esi
movzx eax, byte [ebx + 0xe]
shl edi, 8
xor edi, eax
movzx eax, byte [ebx + 0xf]
mov ebx, dword [ebp - 0x28]
shl edi, 8
xor edi, eax
mov dword [ebp - 0x10], edi
mov eax, dword [ebx]
xor eax, edx
mov edx, dword [ebx + 8]
mov dword [ebp - 0x24], eax
xor edx, esi
mov eax, dword [ebx + 4]
xor eax, ecx
mov ebx, dword [ebx + 0xc]
mov dword [ebp - 0x2c], eax
mov ecx, edx
shr ecx, 0x18
mov eax, edx
shr eax, 0x10
xor ebx, edi
movzx eax, al
mov ecx, dword [ecx*4 + 0x6588e0]
xor ecx, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x6590e0]
movzx eax, dl
xor ecx, dword [eax*4 + 0x6594e0]
mov dword [ebp - 0x30], ecx
mov ecx, ebx
mov edx, dword [ebp - 0x2c]
mov eax, ebx
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x6588e0]
mov ecx, edx
xor edi, dword [eax*4 + 0x658ce0]
mov eax, ebx
shr eax, 8
movzx eax, al
shr ecx, 0x18
xor edi, dword [eax*4 + 0x6590e0]
mov esi, dword [ecx*4 + 0x6588e0]
movzx eax, bl
mov ebx, dword [ebp - 0x30]
xor edi, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 0x10
movzx eax, al
xor esi, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 8
movzx eax, al
xor esi, dword [eax*4 + 0x6590e0]
movzx eax, dl
mov edx, dword [ebp - 0x24]
mov ecx, edx
shr ecx, 0x18
xor esi, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 0x10
xor esi, ebx
mov ecx, dword [ecx*4 + 0x6588e0]
xor ebx, edi
movzx eax, al
xor edi, esi
xor ecx, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x6590e0]
movzx eax, dl
mov edx, edi
and edx, 0xff0000
xor ecx, dword [eax*4 + 0x6594e0]
mov eax, edi
shr eax, 0x10
xor ecx, esi
xor edx, eax
xor ebx, ecx
shr edx, 8
mov eax, edi
and eax, 0xff00
shl edi, 0x10
xor esi, ebx
xor eax, edi
shl eax, 8
xor edx, eax
rol ebx, 0x10
mov dword [ebp - 0x2c], edx
mov eax, esi
mov edx, esi
shl eax, 8
shr edx, 8
xor edx, eax
shl esi, 8
and edx, 0xff00ff
xor edx, esi
mov esi, dword [ebp - 0x2c]
xor edx, ebx
xor ebx, esi
xor ecx, edx
xor esi, edx
xor ebx, ecx
mov dword [ebp - 0x24], ecx
xor edx, ebx
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x20], edx
cmp ebx, 0x80
jle 0x5882ca
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0x10]
movzx eax, byte [ecx + 0x11]
movzx edi, byte [ecx + 0x14]
shl edx, 8
xor edx, eax
shl edi, 8
movzx eax, byte [ecx + 0x12]
shl edx, 8
xor edx, eax
movzx eax, byte [ecx + 0x13]
shl edx, 8
xor edx, eax
movzx eax, byte [ecx + 0x15]
xor edi, eax
movzx eax, byte [ecx + 0x16]
shl edi, 8
xor edi, eax
movzx eax, byte [ecx + 0x17]
shl edi, 8
xor edi, eax
cmp ebx, 0xc0
jle 0x5882c1
movzx ebx, byte [ecx + 0x18]
movzx eax, byte [ecx + 0x19]
movzx esi, byte [ecx + 0x1c]
shl ebx, 8
xor ebx, eax
shl esi, 8
movzx eax, byte [ecx + 0x1a]
shl ebx, 8
xor ebx, eax
movzx eax, byte [ecx + 0x1b]
shl ebx, 8
xor ebx, eax
movzx eax, byte [ecx + 0x1d]
xor esi, eax
movzx eax, byte [ecx + 0x1e]
shl esi, 8
xor esi, eax
movzx eax, byte [ecx + 0x1f]
mov ecx, dword [ebp - 0x24]
shl esi, 8
xor esi, eax
jmp 0x5882d2
mov ecx, dword [ebp - 0x24]
xor esi, esi
xor ebx, ebx
jmp 0x5882d2
xor esi, esi
xor ebx, ebx
xor edi, edi
xor edx, edx
xor edi, dword [ebp - 0x20]
xor edx, ecx
mov ecx, dword [ebp - 0x28]
xor ebx, dword [ebp - 0x30]
xor esi, dword [ebp - 0x2c]
mov dword [ebp - 0x34], edx
mov eax, dword [ecx + 0x10]
xor eax, edx
mov dword [ebp - 0x38], ebx
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x24], eax
xor edx, ebx
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x1c]
xor eax, edi
mov dword [ebp - 0x30], eax
mov ecx, edx
shr ecx, 0x18
mov eax, edx
shr eax, 0x10
xor ebx, esi
movzx eax, al
mov dword [ebp + 8], edi
mov ecx, dword [ecx*4 + 0x6590e0]
mov dword [ebp - 0x3c], esi
xor ecx, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x6588e0]
movzx eax, dl
mov edx, dword [ebp - 0x30]
xor ecx, dword [eax*4 + 0x658ce0]
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov dword [ebp - 0x2c], ecx
mov ecx, ebx
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x6590e0]
mov ecx, edx
xor edi, dword [eax*4 + 0x6594e0]
mov eax, ebx
shr eax, 8
movzx eax, al
shr ecx, 0x18
xor edi, dword [eax*4 + 0x6588e0]
mov esi, dword [ecx*4 + 0x6590e0]
movzx eax, bl
mov ebx, dword [ebp - 0x2c]
xor edi, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 0x10
movzx eax, al
xor esi, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 8
movzx eax, al
xor esi, dword [eax*4 + 0x6588e0]
movzx eax, dl
mov edx, dword [ebp - 0x24]
mov ecx, edx
shr ecx, 0x18
xor esi, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 0x10
xor esi, ebx
mov ecx, dword [ecx*4 + 0x6590e0]
xor ebx, edi
movzx eax, al
xor edi, esi
xor ecx, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x6588e0]
movzx eax, dl
xor ecx, dword [eax*4 + 0x658ce0]
xor ecx, esi
mov dword [ebp - 0x30], ecx
xor ebx, ecx
xor esi, ebx
mov edx, edi
shr edx, 8
mov eax, edi
shl eax, 8
mov ecx, esi
xor edx, eax
shl edi, 8
and ecx, 0xff0000
mov eax, esi
shr eax, 0x10
and edx, 0xff00ff
xor ecx, eax
xor edx, edi
mov eax, esi
shr ecx, 8
and eax, 0xff00
shl esi, 0x10
xor eax, esi
mov esi, dword [ebp - 0x28]
shl eax, 8
xor ecx, eax
mov eax, dword [ebp - 0x30]
rol eax, 0x10
xor ecx, ebx
xor eax, ecx
xor ebx, edx
xor ebx, eax
xor edx, ecx
xor eax, dword [ebp - 4]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
xor eax, ebx
xor edx, dword [ebp - 0x10]
xor ebx, dword [ebp - 0xc]
xor ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
xor eax, dword [esi + 0x20]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], ecx
xor ecx, dword [esi + 0x24]
mov dword [ebp - 0x1c], ebx
xor ebx, dword [esi + 0x28]
mov dword [ebp - 0x2c], ecx
mov eax, ebx
shr eax, 0x10
mov ecx, ebx
movzx eax, al
shr ecx, 0x18
mov dword [ebp - 0x20], edx
xor edx, dword [esi + 0x2c]
mov esi, dword [ecx*4 + 0x6588e0]
mov ecx, edx
xor esi, dword [eax*4 + 0x658ce0]
mov eax, ebx
shr eax, 8
movzx eax, al
shr ecx, 0x18
xor esi, dword [eax*4 + 0x6590e0]
movzx eax, bl
mov ebx, dword [ecx*4 + 0x6588e0]
xor esi, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 0x10
movzx eax, al
xor ebx, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 8
movzx eax, al
xor ebx, dword [eax*4 + 0x6590e0]
movzx eax, dl
mov edx, dword [ebp - 0x2c]
mov ecx, edx
shr ecx, 0x18
xor ebx, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 0x10
mov edi, dword [ecx*4 + 0x6588e0]
movzx eax, al
xor edi, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 8
movzx eax, al
xor edi, dword [eax*4 + 0x6590e0]
movzx eax, dl
mov edx, dword [ebp - 0x30]
mov ecx, edx
shr ecx, 0x18
xor edi, dword [eax*4 + 0x6594e0]
mov eax, edx
shr eax, 0x10
xor edi, esi
movzx eax, al
xor esi, ebx
mov dword [ebp - 0x2c], esi
xor ebx, edi
mov esi, dword [ecx*4 + 0x6588e0]
xor esi, dword [eax*4 + 0x658ce0]
mov eax, edx
shr eax, 8
movzx eax, al
xor esi, dword [eax*4 + 0x6590e0]
movzx eax, dl
mov edx, ebx
and edx, 0xff0000
xor esi, dword [eax*4 + 0x6594e0]
mov eax, dword [ebp - 0x2c]
xor esi, edi
xor eax, esi
xor edi, eax
rol eax, 0x10
mov dword [ebp - 0x2c], eax
mov ecx, edi
mov eax, ebx
shr ecx, 8
shr eax, 0x10
xor edx, eax
mov eax, ebx
and eax, 0xff00
shl ebx, 0x10
xor eax, ebx
shr edx, 8
shl eax, 8
xor edx, eax
mov eax, edi
shl eax, 8
xor ecx, eax
shl edi, 8
and ecx, 0xff00ff
mov eax, edx
xor eax, dword [ebp - 0x2c]
xor ecx, edi
xor ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x34]
xor esi, ecx
xor eax, esi
mov ebx, edi
xor ebx, esi
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp + 8]
xor ebx, eax
xor ebx, ecx
mov dword [ebp - 0x28], ebx
mov ebx, esi
xor ebx, eax
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x3c]
mov eax, ebx
xor eax, edx
xor eax, ecx
mov ecx, ebx
mov dword [ebp - 0x30], eax
mov eax, edi
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [ebp + 0x10]
xor ecx, dword [ebp - 4]
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
shr ecx, 0x13
mov eax, edi
mov edx, dword [ebp + 0x10]
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp + 0x10]
xor ecx, dword [ebp - 8]
mov dword [eax + 4], ecx
mov ecx, esi
shr ecx, 0x13
mov eax, dword [ebp + 8]
shl eax, 0xd
xor ecx, eax
mov eax, esi
xor ecx, dword [ebp - 0xc]
mov dword [edx + 8], ecx
mov ecx, ebx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x14]
xor ecx, dword [ebp - 0x10]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebp - 0x20]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [ebp - 0x14]
xor ecx, edi
shl eax, 0xd
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x18]
shr ecx, 0x13
xor ecx, eax
mov eax, dword [ebp - 0x18]
xor ecx, dword [ebp + 8]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x1c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, esi
shl eax, 0xd
mov dword [edx + 0x18], ecx
mov ecx, dword [ebp - 0x20]
shr ecx, 0x13
xor ecx, eax
mov eax, dword [ebp - 0x24]
xor ecx, ebx
shr eax, 0x13
mov dword [edx + 0x1c], ecx
mov ecx, dword [ebp - 0x30]
shl ecx, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x14]
mov dword [edx + 0x20], ecx
mov ecx, dword [ebp - 0x28]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x28]
xor ecx, dword [ebp - 0x18]
mov dword [edx + 0x24], ecx
mov ecx, dword [ebp - 0x2c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x1c]
mov dword [edx + 0x28], ecx
mov ecx, dword [ebp - 0x30]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 4]
xor ecx, dword [ebp - 0x20]
mov dword [edx + 0x2c], ecx
mov ecx, dword [ebp - 0x10]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [ebp - 4]
xor ecx, dword [ebp - 0x24]
mov dword [edx + 0x30], ecx
mov ecx, dword [ebp - 8]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 8]
xor ecx, dword [ebp - 0x28]
mov dword [edx + 0x34], ecx
mov ecx, dword [ebp - 0xc]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [ebp - 0xc]
xor ecx, dword [ebp - 0x2c]
mov dword [edx + 0x38], ecx
mov ecx, dword [ebp - 0x10]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
xor ecx, dword [ebp - 0x30]
mov dword [edx + 0x3c], ecx
lea ecx, [ebx + ebx]
shr eax, 0x1f
xor ecx, eax
lea eax, [edi + edi]
xor ecx, dword [ebp - 4]
mov dword [edx + 0x40], ecx
mov ecx, dword [ebp + 8]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp + 8]
xor ecx, dword [ebp - 8]
add eax, eax
mov dword [edx + 0x44], ecx
mov ecx, esi
shr ecx, 0x1f
xor ecx, eax
lea eax, [esi + esi]
xor ecx, dword [ebp - 0xc]
mov dword [edx + 0x48], ecx
mov ecx, ebx
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x20]
xor ecx, dword [ebp - 0x10]
mov dword [edx + 0x4c], ecx
lea ecx, [eax + eax]
mov eax, dword [ebp - 0x14]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x14]
xor ecx, edi
add eax, eax
mov dword [edx + 0x50], ecx
mov ecx, dword [ebp - 0x18]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x18]
xor ecx, dword [ebp + 8]
add eax, eax
mov dword [edx + 0x54], ecx
mov ecx, dword [ebp - 0x1c]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, esi
add eax, eax
mov dword [edx + 0x58], ecx
mov ecx, dword [ebp - 0x20]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x30]
xor ecx, ebx
mov dword [edx + 0x5c], ecx
lea ecx, [eax + eax]
mov eax, dword [ebp - 0x24]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x14]
add eax, eax
mov dword [edx + 0x60], ecx
mov ecx, dword [ebp - 0x28]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x28]
xor ecx, dword [ebp - 0x18]
add eax, eax
mov dword [edx + 0x64], ecx
mov ecx, dword [ebp - 0x2c]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x1c]
add eax, eax
mov dword [edx + 0x68], ecx
mov ecx, dword [ebp - 0x30]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x10]
xor ecx, dword [ebp - 0x20]
mov dword [edx + 0x6c], ecx
lea ecx, [eax + eax]
mov eax, dword [ebp - 4]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 4]
xor ecx, dword [ebp - 0x24]
add eax, eax
mov dword [edx + 0x70], ecx
mov ecx, dword [ebp - 8]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 8]
xor ecx, dword [ebp - 0x28]
add eax, eax
mov dword [edx + 0x74], ecx
mov ecx, dword [ebp - 0xc]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0xc]
xor ecx, dword [ebp - 0x2c]
add eax, eax
mov dword [edx + 0x78], ecx
mov ecx, dword [ebp - 0x10]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp + 8]
xor ecx, dword [ebp - 0x30]
mov dword [edx + 0x7c], ecx
mov ecx, esi
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, esi
xor ecx, dword [ebp - 4]
mov dword [edx + 0x80], ecx
mov ecx, ebx
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, edi
xor ecx, dword [ebp - 8]
mov dword [edx + 0x84], ecx
mov ecx, ebx
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, edi
xor ecx, dword [ebp - 0xc]
mov dword [edx + 0x88], ecx
mov ecx, dword [ebp + 8]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
xor ecx, dword [ebp - 0x10]
mov dword [edx + 0x8c], ecx
mov ecx, dword [ebp - 0x1c]
shr ecx, 3
mov eax, dword [ebp - 0x18]
shl eax, 0x1d
xor ecx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, edi
shl eax, 0x1d
mov dword [edx + 0x90], ecx
mov ecx, dword [ebp - 0x20]
shr ecx, 3
xor ecx, eax
mov eax, dword [ebp - 0x14]
xor ecx, dword [ebp + 8]
mov dword [edx + 0x94], ecx
mov ecx, dword [ebp - 0x20]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [ebp - 0x14]
xor ecx, esi
shl eax, 0x1d
mov dword [edx + 0x98], ecx
mov ecx, dword [ebp - 0x18]
shr ecx, 3
xor ecx, eax
mov eax, dword [ebp - 0x28]
xor ecx, ebx
shl eax, 0x1d
mov dword [edx + 0x9c], ecx
mov ecx, dword [ebp - 0x2c]
shr ecx, 3
xor ecx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x14]
mov dword [edx + 0xa0], ecx
mov ecx, dword [ebp - 0x30]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x18]
mov dword [edx + 0xa4], ecx
mov ecx, dword [ebp - 0x30]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x1c]
mov dword [edx + 0xa8], ecx
mov ecx, dword [ebp - 0x28]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [ebp - 8]
xor ecx, dword [ebp - 0x20]
mov dword [edx + 0xac], ecx
mov ecx, dword [ebp - 0xc]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [ebp - 0xc]
xor ecx, dword [ebp - 0x24]
mov dword [edx + 0xb0], ecx
mov ecx, dword [ebp - 0x10]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [ebp - 4]
xor ecx, dword [ebp - 0x28]
mov dword [edx + 0xb4], ecx
mov ecx, dword [ebp - 0x10]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [ebp - 4]
xor ecx, dword [ebp - 0x2c]
mov dword [edx + 0xb8], ecx
mov ecx, dword [ebp - 8]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, edi
xor ecx, dword [ebp - 0x30]
mov dword [edx + 0xbc], ecx
add edx, 0xc0
mov ecx, dword [ebp + 8]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [ebp + 8]
xor ecx, dword [ebp - 4]
mov dword [edx], ecx
mov ecx, esi
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, esi
xor ecx, dword [ebp - 8]
mov dword [edx + 4], ecx
mov ecx, ebx
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [ebp - 0xc]
mov dword [edx + 8], ecx
mov ecx, ebx
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, dword [ebp + 0xc]
xor ecx, dword [ebp - 0x10]
mov dword [edx + 0xc], ecx
cmp eax, 0x80
jle 0x588a90
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x18]
xor ecx, edi
shl eax, 0x1f
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x1c]
shr ecx, 1
xor ecx, eax
mov eax, dword [ebp - 0x1c]
xor ecx, dword [ebp + 8]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x20]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x14]
xor ecx, esi
shr eax, 1
mov dword [edx + 0x18], ecx
mov ecx, dword [ebp - 0x20]
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x24]
xor ecx, ebx
shl eax, 0x1f
mov dword [edx + 0x1c], ecx
add edx, 0x20
mov ecx, dword [ebp - 0x28]
shr ecx, 1
xor ecx, eax
mov eax, dword [ebp - 0x28]
xor ecx, dword [ebp - 0x14]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x2c]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x18]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x30]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0x24]
xor ecx, dword [ebp - 0x1c]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x30]
shr eax, 1
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [ebp + 0xc]
xor ecx, dword [ebp - 0x20]
mov dword [edx + 0xc], ecx
cmp eax, 0xc0
jle 0x588b2b
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 4]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 8]
xor ecx, dword [ebp - 0x24]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0xc]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [ebp - 0xc]
xor ecx, dword [ebp - 0x28]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x10]
shl eax, 0x1f
shr ecx, 1
xor ecx, eax
mov eax, dword [ebp - 4]
xor ecx, dword [ebp - 0x2c]
mov dword [edx + 0x18], ecx
mov ecx, dword [ebp - 0x10]
shr eax, 1
shl ecx, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [ebp - 0x30]
mov dword [edx + 0x1c], ecx
mov ecx, dword [ebp + 8]
shl eax, 0x13
shr ecx, 0xd
xor ecx, eax
shr edi, 0xd
xor ecx, dword [ebp - 4]
mov eax, esi
shr eax, 0xd
mov dword [edx + 0x20], ecx
mov ecx, dword [ebp + 8]
shl ecx, 0x13
xor eax, ecx
shl esi, 0x13
xor eax, dword [ebp - 8]
mov dword [edx + 0x24], eax
mov eax, ebx
shr eax, 0xd
shl ebx, 0x13
xor eax, esi
xor eax, dword [ebp - 0xc]
xor ebx, edi
xor ebx, dword [ebp - 0x10]
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ebx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret