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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
mov esi, dword [edx + 0x14]
mov dword [esp + 0x44], esi
mov ecx, dword [eax + 0x14]
xor ecx, esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x78], ecx
movdqu xmm1, xmmword [edx + 4]
movdqu xmm4, xmmword [eax + 4]
pxor xmm4, xmm1
movdqu xmmword [esp + 0x68], xmm4
mov ecx, dword [edx]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax]
mov dword [esp + 0x48], eax
xor eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x64], eax
pxor xmm0, xmm0
mov byte [esp + 0x18], 0xf
mov byte [esp + 0x40], 0xe
mov al, 0x42
mov dword [esp + 0x20], eax
mov ebp, 4
xor edi, edi
mov edx, 0xe
xor eax, eax
mov dword [esp + 0x1c], 0
jmp 0x797949
mov ebp, 0x80000000
mov dword [esp + 0x1c], ebx
and edx, 0xffffff40
lea ebx, [edx + 0xd2]
mov esi, edx
mov ecx, dword [esp + 0x20]
movzx edx, cl
cmp edx, 0x53
jne 0x797980
add esi, 0xc7
lea ecx, [ebx + ebx - 0x25]
add cl, 0xc3
mov dword [esp + 0x20], ecx
mov ebx, esi
jmp 0x797989
mov cl, bl
add cl, 0x81
mov dword [esp + 0x20], ecx
mov cl, byte [esp + 0x40]
nop dword [eax]
and ebx, 0xffffff8a
mov edx, ebx
add edx, 0xffffff91
movzx ebx, cl
cmp ebx, 0x4c
je 0x797a10
cmp ebx, 0x66
jne 0x797a70
mov cl, dl
add cl, 0x53
movd xmm2, edi
mov edx, edi
add edx, edx
movd esi, xmm0
shr esi, 0x1f
lea esi, [esi + eax*2]
add eax, eax
mov ebx, esi
and ebx, 7
mov edi, edx
xor edi, 0xc9
and eax, 8
cmove edi, edx
test eax, eax
mov eax, ebx
cmove eax, esi
pshufd xmm3, xmm0, 0xf9
shufps xmm2, xmm3, 0x20
shufps xmm3, xmm2, 0x24
psrld xmm3, 0x1f
paddd xmm0, xmm0
por xmm0, xmm3
test dword [esp + 0x48], ebp
jne 0x797ac9
movzx edx, cl
jmp 0x797add
xor edx, 0x60
mov dword [esp + 0x40], edx
mov cl, dl
xor cl, 0x7d
movd xmm2, edi
add edi, edi
movd edx, xmm0
shr edx, 0x1f
lea edx, [edx + eax*2]
add eax, eax
mov esi, edx
and esi, 7
mov ebx, edi
xor ebx, 0xc9
and eax, 8
cmovne edi, ebx
test eax, eax
cmove esi, edx
mov edx, dword [esp + 0x40]
pshufd xmm3, xmm0, 0xf9
shufps xmm2, xmm3, 0x20
shufps xmm3, xmm2, 0x24
psrld xmm3, 0x1f
paddd xmm0, xmm0
por xmm0, xmm3
test dword [esp + 0x48], ebp
mov eax, esi
jne 0x797ac9
jmp 0x797add
mov cl, dl
add cl, 0x39
movd xmm2, edi
add edi, edi
movd ebx, xmm0
shr ebx, 0x1f
mov dword [esp + 0x40], edx
lea edx, [ebx + eax*2]
add eax, eax
mov ebx, edx
and ebx, 7
mov esi, edi
xor esi, 0xc9
and eax, 8
cmovne edi, esi
test eax, eax
cmove ebx, edx
mov edx, dword [esp + 0x40]
pshufd xmm3, xmm0, 0xf9
shufps xmm2, xmm3, 0x20
shufps xmm3, xmm2, 0x24
psrld xmm3, 0x1f
paddd xmm0, xmm0
por xmm0, xmm3
test dword [esp + 0x48], ebp
mov eax, ebx
je 0x797add
mov dl, cl
and dl, 0x95
movzx edx, dl
xor edi, dword [esp + 0x44]
pxor xmm0, xmm1
xor eax, dword [esp + 0x3c]
and edx, 0xffffff88
lea ebx, [edx + 0xb7]
shr ebp, 1
jne 0x797990
mov esi, dword [esp + 0x1c]
lea ebx, [esi + 1]
cmp ebx, 6
je 0x797b62
mov byte [esp + 0x40], cl
add edx, 0x44
xor edx, 0xf4
mov ecx, edx
movzx edx, byte [esp + 0x18]
cmp edx, 0x20
je 0x797b20
cmp edx, 0x54
jne 0x797b40
mov dl, cl
xor dl, 0xe4
jmp 0x797b48
add cl, 0x5f
mov edx, dword [esp + 0x90]
mov edx, dword [edx + esi*4 + 4]
mov dword [esp + 0x48], edx
mov dl, cl
mov byte [esp + 0x18], dl
movzx edx, cl
jmp 0x797940
add ecx, 0xfffffffa
mov dl, cl
add dl, 0x76
mov byte [esp + 0x18], dl
mov edx, dword [esp + 0x90]
mov edx, dword [edx + esi*4 + 4]
mov dword [esp + 0x48], edx
mov edx, ecx
jmp 0x797940
movdqu xmmword [esp + 0x20], xmm4
add dl, 0x1c
mov dword [esp + 0x40], edx
mov cl, dl
xor cl, 0x5b
mov dword [esp + 0x1c], ecx
xor dl, 0x50
mov dword [esp + 0x44], edx
mov bl, dl
add bl, 0xe7
and eax, 7
mov dword [esp + 0x4c], eax
movdqu xmmword [esp + 0x50], xmm0
mov dword [esp + 0x60], edi
lea eax, [esp + 0x4c]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 0xc], 0x11
call fcn.00798040
movzx ecx, bl
pxor xmm0, xmm0
mov eax, 4
xor edx, edx
mov esi, 0xb
add esi, 0xd9
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
xor esi, esi
xor edi, edi
jmp 0x797bf9
mov eax, 0x80000000
mov bl, byte [esp + 0x17]
and ecx, 0xffffff90
or ecx, 0x4c
movzx ebx, bl
cmp ebx, 0xd
movdqu xmm3, xmmword [esp + 0x20]
je 0x797c20
mov dword [esp + 0x18], edi
cmp ebx, 0x33
jne 0x797c40
add cl, 0xe
jmp 0x797c27
mov dword [esp + 0x18], edi
add cl, 0xd7
mov bl, cl
mov byte [esp + 0x17], bl
movzx ecx, cl
jmp 0x797c50
mov bl, cl
add bl, 0xb1
mov byte [esp + 0x17], bl
nop dword [eax]
mov dword [esp + 0x48], eax
and ecx, 0xffffff80
lea ebx, [ecx + 0xcc]
mov eax, dword [esp + 0x44]
movzx edi, al
cmp edi, 0xd
je 0x797ce0
cmp edi, 0x25
jne 0x797d50
add ebx, 0xffffffc6
add bl, 0xba
movd xmm1, edx
add edx, edx
movd ecx, xmm0
shr ecx, 0x1f
lea ecx, [ecx + esi*2]
add esi, esi
mov edi, ecx
and edi, 7
mov ebp, edx
xor ebp, 0xc9
and esi, 8
cmovne edx, ebp
pshufd xmm2, xmm0, 0xf9
shufps xmm1, xmm2, 0x20
shufps xmm2, xmm1, 0x24
psrld xmm2, 0x1f
paddd xmm0, xmm0
por xmm0, xmm2
test esi, esi
cmove edi, ecx
mov eax, dword [esp + 0x48]
test dword [esp + 0x3c], eax
movzx ecx, bl
mov esi, edi
mov dword [esp + 0x44], ebx
mov ebx, ecx
jne 0x797db2
jmp 0x797de0
mov eax, ebx
xor eax, 0x7e
add al, 0x73
movd xmm1, edx
mov ecx, edx
add ecx, ecx
movd edx, xmm0
shr edx, 0x1f
lea ebp, [edx + esi*2]
add esi, esi
mov edi, ebp
and edi, 7
mov edx, ecx
xor edx, 0xc9
and esi, 8
cmove edx, ecx
test esi, esi
mov esi, edi
cmove esi, ebp
pshufd xmm2, xmm0, 0xf9
shufps xmm1, xmm2, 0x20
shufps xmm2, xmm1, 0x24
psrld xmm2, 0x1f
paddd xmm0, xmm0
por xmm0, xmm2
mov ecx, dword [esp + 0x48]
test dword [esp + 0x3c], ecx
je 0x797dce
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
jmp 0x797db2
add ecx, 0xee
xor cl, 0xe3
movd xmm1, edx
add edx, edx
movd edi, xmm0
shr edi, 0x1f
lea edi, [edi + esi*2]
add esi, esi
mov ebp, edi
and ebp, 7
mov ebx, edx
xor ebx, 0xc9
and esi, 8
cmovne edx, ebx
pshufd xmm2, xmm0, 0xf9
shufps xmm1, xmm2, 0x20
shufps xmm2, xmm1, 0x24
psrld xmm2, 0x1f
paddd xmm0, xmm0
por xmm0, xmm2
test esi, esi
cmove ebp, edi
mov eax, dword [esp + 0x48]
test dword [esp + 0x3c], eax
movzx ebx, cl
mov esi, ebp
mov dword [esp + 0x44], ecx
mov ecx, ebx
je 0x797de0
and ebx, 0xffffff3e
xor ebx, 0xa3
xor edx, dword [esp + 0x34]
pxor xmm0, xmm3
xor esi, dword [esp + 0x38]
mov ecx, ebx
jmp 0x797de0
movzx ecx, al
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
nop dword [eax]
and ecx, 0xffffff14
add ecx, 0x12
shr eax, 1
jne 0x797c50
mov eax, dword [esp + 0x1c]
movzx eax, al
cmp eax, 0xc
jne 0x797e20
mov edi, dword [esp + 0x18]
inc edi
cmp edi, 6
je 0x797ea5
mov eax, dword [esp + 0x10]
lea ebx, [eax + 0x16]
add bl, 0x12
jmp 0x797e34
mov edi, dword [esp + 0x18]
inc edi
cmp edi, 6
je 0x797ea5
mov ebx, dword [esp + 0x10]
add bl, 0x63
movzx eax, bl
and eax, 0xffffff5c
mov cl, bl
and cl, 0xb4
movzx ecx, cl
xor ecx, eax
add ecx, 0xab
mov eax, dword [esp + 0x40]
movzx eax, al
cmp eax, 0x1c
jne 0x797e80
mov dword [esp + 0x1c], ebx
movdqu xmmword [esp + 0x20], xmm3
lea eax, [ecx - 0x20]
xor eax, ecx
xor al, 0x3c
mov dword [esp + 0x40], eax
mov ecx, dword [esp + edi*4 + 0x64]
mov dword [esp + 0x3c], ecx
movzx ecx, al
jmp 0x797bf0
mov dword [esp + 0x1c], ebx
movdqu xmmword [esp + 0x20], xmm3
add ecx, 0xffffff73
mov al, cl
add al, 0xb9
mov dword [esp + 0x40], eax
mov eax, dword [esp + edi*4 + 0x64]
mov dword [esp + 0x3c], eax
jmp 0x797bf0
and esi, 7
mov dword [esp + 0x4c], esi
movdqu xmmword [esp + 0x50], xmm0
mov dword [esp + 0x60], edx
lea eax, [esp + 0x4c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov dword [esp], 0x30
call fcn.00799710
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret