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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x17c
mov eax, dword [esp + 0x194]
mov ebx, 0x2fca362e
cmp dword [esp + 0x19c], 0x12
jne 0x799284
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x174], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x16c], xmm1
movsd qword [esp + 0x164], xmm0
mov eax, dword [esp + 0x178]
mov dword [esp + 0x64], eax
shr eax, 1
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x170]
mov dword [esp + 0x5c], edx
or ecx, edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 0x58], edx
or ecx, edx
mov edx, dword [esp + 0x168]
mov dword [esp + 0x54], edx
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x50], eax
or ecx, eax
mov dword [esp + 0x14c], 8
mov dword [esp + 0x154], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x160], 0xc9
pxor xmm6, xmm6
mov dword [esp + 0x10c], 1
je 0x799690
add ebx, 0xd035c9e3
lea ecx, [esp + 0x148]
mov dword [esp + 0x110], ecx
lea ecx, [esp + 0x144]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0x140]
mov dword [esp + 0x94], ecx
lea ecx, [esp + 0x13c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x138]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x134]
mov dword [esp + 0xc8], ecx
lea ecx, [esp + 0x135]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x136]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x137]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x139]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x13a]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x13b]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x13d]
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x13e]
mov dword [esp + 0x8c], ecx
lea ecx, [esp + 0x13f]
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x141]
mov dword [esp + 0xfc], ecx
lea ecx, [esp + 0x142]
mov dword [esp + 0xf8], ecx
lea ecx, [esp + 0x143]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x145]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x146]
mov dword [esp + 0xa4], ecx
lea ecx, [esp + 0x147]
mov dword [esp + 0x9c], ecx
lea ecx, [esp + 0x149]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x14a]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x14b]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x164]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x128], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], ecx
xor eax, eax
mov dword [esp + 0x108], edx
mov dword [esp + 0xe4], eax
cmp ebx, 0xf
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xd0], eax
mov ebx, edi
mov ebp, dword [esp + 0x128]
movdqa xmm3, xmm2
je 0x7983bc
pxor xmm1, xmm1
mov dword [esp + 0x130], 1
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 8
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x80], ecx
pxor xmm3, xmm3
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x90], ecx
mov ebx, 0
mov ebp, 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ebx
movdqu xmmword [esp + 0xb0], xmm3
movd ecx, xmm3
pshufd xmm5, xmm3, 0xe5
movd edx, xmm5
or edx, ecx
pshufd xmm5, xmm3, 0x4e
movd esi, xmm5
or esi, edx
pshufd xmm5, xmm3, 0xe7
movd ecx, xmm5
or ecx, esi
or ecx, ebp
or ecx, ebx
test cl, cl
setne dl
cmp ecx, 0xff
seta cl
or cl, dl
mov byte [esp + 0x124], cl
mov ecx, dword [esp + 0x120]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0xf4], ecx
movdqa xmm5, xmm4
mov eax, dword [esp + 0xe4]
mov ebp, dword [esp + 0x108]
jmp 0x7984c0
mov ebx, edi
mov eax, dword [esp + 0x98]
cmp byte [eax], 0
je 0x7996ca
mov al, byte [esp + 0x124]
xor al, 1
je 0x798f63
jmp 0x7996ca
mov dword [esp + 0xd4], esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
jmp 0x7990b9
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0x90]
shr ecx, 1
mov eax, dword [esp + 0x84]
or eax, dword [esp + 0x78]
or eax, dword [esp + 0x80]
or eax, dword [esp + 0x7c]
or eax, dword [esp + 0x74]
or eax, ecx
mov dword [esp + 0xc4], eax
mov edx, 0x12
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x108], eax
mov dword [esp + 0xd4], ebp
mov eax, dword [esp + 0x70]
mov dword [esp + 0xd0], eax
mov ebx, dword [esp + 0x128]
jmp 0x7989c0
mov dword [esp + 0x12c], edi
mov dword [esp + 0x130], edx
mov ecx, dword [esp + 0xc0]
cmp byte [ecx], 0
jne 0x7985a0
mov dword [esp + 0x10c], ebp
mov ecx, 0xd
mov edx, dword [esp + 0x8c]
cmp byte [edx], 0
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x88]
jne 0x7985a0
cmp ecx, 0xd
jne 0x7985b2
mov cl, byte [edi]
or cl, byte [edx]
jne 0x7985a0
mov ecx, dword [esp + 0xfc]
cmp byte [ecx], 0
jne 0x7985a0
mov ecx, 0x17
mov ebp, dword [esp + 0xf8]
cmp byte [ebp], 0
je 0x798570
nop dword [eax]
movdqa xmm7, xmm2
mov edx, dword [esp + 0x128]
mov ecx, ebx
jmp 0x798708
mov ecx, 9
mov edx, dword [esp + 0x6c]
mov dl, byte [edx]
mov edi, dword [esp + 0xe0]
or dl, byte [edi]
je 0x7985dd
mov edi, ebx
cmp ecx, 6
movdqa xmm7, xmm2
mov edx, dword [esp + 0x128]
jmp 0x798700
mov dword [esp + 0xe4], eax
mov ecx, 0xa
mov edx, 7
mov edi, dword [esp + 0x4c]
cmp byte [edi], 0
mov edi, ebx
mov ebx, dword [esp + 0x128]
je 0x7989c0
cmp ecx, 0xa
mov eax, dword [esp + 0xe4]
je 0x798980
nop word cs:[eax + eax]
mov ebp, 0xb
mov ecx, dword [esp + 0xa0]
cmp byte [ecx], 0
movdqa xmm7, xmm2
mov edx, ebx
mov dword [esp + 0x128], ebx
mov ecx, edi
jne 0x798708
cmp ebp, 0xb
jne 0x798690
nop dword [eax]
mov ebp, 0x13
mov eax, dword [esp + 0x98]
cmp byte [eax], 0
movdqa xmm7, xmm2
mov edx, dword [esp + 0x128]
mov ecx, edi
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xac]
movdqu xmm6, xmmword [esp + 0xb0]
jne 0x798708
jmp 0x7986f0
mov ecx, 6
mov edx, dword [esp + 0xfc]
cmp byte [edx], 0
jne 0x798f20
cmp ecx, 6
jne 0x798f20
nop
mov ecx, dword [esp + 0xf8]
cmp byte [ecx], 0
jne 0x798f20
mov ecx, dword [esp + 0x6c]
mov cl, byte [ecx]
mov edx, dword [esp + 0xe0]
or cl, byte [edx]
jne 0x798f20
mov ecx, 0xf
mov ebp, 0xc
mov edx, dword [esp + 0x4c]
cmp byte [edx], 0
je 0x79883d
nop dword [eax]
cmp ebp, 0xc
je 0x798f20
jmp 0x7996e3
mov ecx, edi
je 0x798f20
movzx eax, dx
pshufd xmm2, xmm7, 0xe7
movd ebx, xmm2
or ebx, eax
mov eax, edx
and eax, 0xff0000
or eax, ebx
jne 0x798789
pshufd xmm2, xmm7, 0x4e
movd edi, xmm2
movzx ebx, di
pshufd xmm2, xmm7, 0xe5
movd ebp, xmm2
mov eax, edi
and eax, 0xff0000
or eax, ebp
or eax, ebx
jne 0x798789
mov ebx, dword [esp + 0x104]
mov eax, ebx
and eax, 0xff00
and ebx, 0xff0000
or ebx, eax
or ebx, ecx
jne 0x798789
mov eax, dword [esp + 0x104]
test al, al
jne 0x798789
cmp dword [esp + 0x104], 0xffffff
ja 0x798789
cmp edi, 0xffffff
ja 0x798789
cmp edx, 0x1000000
jb 0x799694
mov eax, 0xf
mov edi, dword [esp + 0xd8]
lea edi, [esp + edi*4 + 0x134]
mov dword [esp + 0x100], edi
mov edi, dword [esp + 0x110]
mov edi, dword [edi]
mov dword [esp + 0x118], edi
mov dword [esp + 0x114], 0
movdqa xmm2, xmm7
mov dword [esp + 0x128], edx
mov edi, ecx
cmp eax, 9
mov dword [esp + 0x120], ecx
mov dword [esp + 0x11c], edx
movdqa xmm4, xmm7
je 0x798f20
mov ecx, 0xd
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x100]
test dword [edx], eax
jne 0x799183
mov eax, dword [esp + 0x120]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0xf4], eax
movdqa xmm5, xmm4
cmp ecx, 0xd
jne 0x798910
mov edx, dword [esp + 0xf0]
lea ecx, [edx + edx]
mov dword [esp + 0x118], ecx
mov eax, dword [esp + 0x110]
mov dword [eax], ecx
mov ecx, dword [esp + 0xe0]
mov eax, dword [ecx]
shrd edx, eax, 0x1f
mov dword [ecx], edx
movd xmm3, eax
mov eax, dword [esp + 0xc8]
movdqu xmm4, xmmword [eax]
pshufd xmm6, xmm4, 0xf9
shufps xmm3, xmm6, 0x20
shufps xmm6, xmm3, 0x24
psrld xmm6, 0x1f
paddd xmm4, xmm4
por xmm4, xmm6
movdqu xmmword [eax], xmm4
mov ebx, dword [esp + 0xf4]
inc ebx
cmp ebx, 0xc1
ja 0x799694
pshufd xmm3, xmm5, 0xf9
mov edx, dword [esp + 0xe8]
movd xmm4, edx
add edx, edx
shufps xmm4, xmm3, 0x20
shufps xmm3, xmm4, 0x24
psrld xmm3, 0x1f
movd eax, xmm5
paddd xmm5, xmm5
por xmm5, xmm3
mov ecx, dword [esp + 0xec]
shld ecx, eax, 1
mov dword [esp + 0x120], ecx
mov dword [esp + 0x11c], edx
mov dword [esp + 0x114], ebx
movdqa xmm4, xmm5
jmp 0x7987e6
mov ecx, 0x10
mov eax, dword [esp + 0xa4]
cmp byte [eax], 0
jne 0x798f20
cmp ecx, 0x10
mov ebx, dword [esp + 0x128]
jne 0x798980
nop word cs:[eax + eax]
mov eax, dword [esp + 0x9c]
mov al, byte [eax]
mov ecx, dword [esp + 0x110]
or al, byte [ecx]
jne 0x798f20
mov edx, 5
mov eax, dword [esp + 0x68]
cmp byte [eax], 0
je 0x79898d
mov dword [esp + 0x128], ebx
cmp edx, 5
movdqa xmm7, xmm2
mov edx, ebx
jmp 0x798700
movdqa xmm7, xmm2
mov edx, ebx
mov ecx, edi
jmp 0x798708
mov eax, 9
mov ecx, dword [esp + 0xa0]
cmp byte [ecx], 0
je 0x79845f
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
movdqa xmm7, xmm4
jmp 0x7987cb
cmp edx, 7
jne 0x798a10
mov ecx, dword [esp + 0xa4]
cmp byte [ecx], 0
jne 0x798980
mov ecx, dword [esp + 0x9c]
mov cl, byte [ecx]
mov edx, dword [esp + 0x110]
or cl, byte [edx]
jne 0x798980
mov ecx, 0x14
mov edx, 9
mov ebp, ebx
mov ebx, edi
mov edi, dword [esp + 0x68]
cmp byte [edi], 0
mov edi, ebx
mov ebx, ebp
jne 0x798966
jmp 0x798604
mov dword [esp + 0x128], ebx
mov ebx, edi
mov edx, 0x80000000
mov edi, dword [esp + 0x130]
mov ebp, dword [esp + 0x12c]
mov ecx, dword [esp + 0x108]
nop word cs:[eax + eax]
mov dword [esp + 0x108], ecx
mov eax, ecx
mov ecx, dword [esp + eax*4 + 0x14c]
and ecx, esi
test dword [esp + eax*4 + 0x164], esi
jne 0x798a98
test ecx, ecx
jne 0x798b67
shr esi, 1
sete al
movzx eax, al
cmove esi, edx
mov ecx, dword [esp + 0x108]
add ecx, eax
cmp dword [esp + 0xc4], 0
mov dword [esp + 0x10c], edi
mov dword [esp + 0xe4], ebp
movdqa xmm6, xmm1
jne 0x798a40
jmp 0x7996bf
test ecx, ecx
je 0x798c4e
mov ecx, 0x19
mov edx, dword [esp + 0x160]
xor edx, dword [esp + 0x90]
mov dword [esp + 0x44], edx
mov dword [esp + 0x178], edx
mov edx, dword [esp + 0x15c]
xor edx, dword [esp + 0x84]
mov dword [esp + 0x174], edx
mov edi, dword [esp + 0x158]
xor edi, dword [esp + 0x78]
mov dword [esp + 0x40], edi
mov dword [esp + 0x170], edi
mov edi, dword [esp + 0x154]
xor edi, dword [esp + 0x80]
mov dword [esp + 0x34], edi
mov dword [esp + 0x16c], edi
mov edi, dword [esp + 0x150]
xor edi, dword [esp + 0x7c]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x168], edi
movdqu xmm0, xmmword [esp + 0xb0]
mov eax, dword [esp + 0x14c]
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xcc], edi
mov dword [esp + 0x48], edx
cmp ecx, 9
jne 0x798485
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0xc0]
cmp byte [ecx], 0
je 0x798d40
mov dword [esp + 0x30], ebp
jmp 0x798e52
mov ecx, 0x10
movsd xmm2, qword [esp + 0x174]
movsd qword [esp + 0x144], xmm2
movsd xmm2, qword [esp + 0x164]
movsd xmm3, qword [esp + 0x16c]
movsd qword [esp + 0x13c], xmm3
movsd qword [esp + 0x134], xmm2
movsd xmm2, qword [esp + 0x15c]
movsd qword [esp + 0x174], xmm2
movsd xmm2, qword [esp + 0x14c]
movsd xmm3, qword [esp + 0x154]
movsd qword [esp + 0x16c], xmm3
movsd qword [esp + 0x164], xmm2
movsd xmm2, qword [esp + 0x144]
movsd qword [esp + 0x15c], xmm2
movsd xmm2, qword [esp + 0x134]
movsd xmm3, qword [esp + 0x13c]
movsd qword [esp + 0x154], xmm3
movsd qword [esp + 0x14c], xmm2
cmp byte [esp + 0x134], 0
movd dword [esp + 0x104], xmm1
je 0x798cc0
movdqa xmm7, xmm1
mov edx, edi
mov ecx, ebp
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], esi
mov dword [esp + 0xd4], esi
jmp 0x798d8f
movsd xmm7, qword [esp + 0x15c]
movsd qword [esp + 0x144], xmm7
movsd xmm7, qword [esp + 0x14c]
movsd xmm3, qword [esp + 0x154]
movsd qword [esp + 0x13c], xmm3
movsd qword [esp + 0x134], xmm7
cmp byte [esp + 0x134], 0
jne 0x798e52
mov ecx, 6
mov edx, dword [esp + 0x20]
cmp byte [edx], 0
mov edi, ebx
je 0x798ddb
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
jmp 0x7985ca
movdqa xmm2, xmm1
mov dword [esp + 0x128], edi
mov ebx, ebp
mov edx, dword [esp + 0x108]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], esi
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x130], edi
cmp ecx, 9
je 0x798e52
mov ecx, dword [esp + 0x20]
cmp byte [ecx], 0
jne 0x798d74
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
jne 0x798d74
mov edi, 0x18
mov ecx, 0x1f
mov edx, dword [esp + 0x18]
mov dl, byte [edx]
mov ebp, dword [esp + 0x28]
or dl, byte [ebp]
je 0x798d55
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
mov edi, ebx
jmp 0x798925
mov dword [esp + 0x30], ebp
mov edi, 0xd
mov ecx, dword [esp + 0x8c]
cmp byte [ecx], 0
je 0x798d9b
cmp edi, 0xd
je 0x798e52
mov ecx, dword [esp + 0x1c]
cmp byte [ecx], 0
jne 0x798d74
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0
je 0x798e6e
movdqa xmm7, xmm2
mov edx, dword [esp + 0x128]
mov ecx, ebx
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
jmp 0x798708
mov ebp, 0x13
mov ecx, dword [esp + 0x88]
mov cl, byte [ecx]
mov edx, dword [esp + 0x94]
or cl, byte [edx]
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
mov edi, ebx
mov eax, dword [esp + 0xe4]
jne 0x798f20
jmp 0x798644
mov ebx, edi
mov edx, 0xa
mov ecx, 9
mov edi, dword [esp + 0x10]
cmp byte [edi], 0
je 0x798e03
mov edi, dword [esp + 0x130]
mov ebp, dword [esp + 0x12c]
jmp 0x798ce2
cmp edx, 0xa
jne 0x798e52
mov edi, 0x10
mov ecx, dword [esp + 0x18]
mov cl, byte [ecx]
mov edx, dword [esp + 0x28]
or cl, byte [edx]
jne 0x798e87
mov ecx, 0x10
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0
jne 0x798eb8
mov edx, 0xe
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0
jne 0x798e03
mov ecx, 9
mov edx, dword [esp + 0xc]
mov dl, byte [edx]
mov edi, dword [esp + 0x24]
or dl, byte [edi]
je 0x798f0e
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
mov edi, ebx
jmp 0x798f20
mov edi, 0x14
mov ecx, 0xc
mov edx, dword [esp + 0xc]
mov dl, byte [edx]
mov ebp, dword [esp + 0x24]
or dl, byte [ebp]
je 0x798edb
mov eax, dword [esp + 0x108]
mov dword [esp + 0x108], eax
cmp edi, 0x10
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], eax
movdqa xmm7, xmm2
mov edx, dword [esp + 0x128]
mov edi, ebx
jmp 0x798700
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
mov edi, ebx
mov eax, dword [esp + 0xe4]
jmp 0x7986a5
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0x108]
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x130]
mov edi, dword [esp + 0x12c]
mov eax, dword [esp + 0xe4]
mov ebp, dword [esp + 0x10c]
jmp 0x798f4c
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
jmp 0x798b3d
mov ebx, edi
mov ecx, 0xe
mov al, byte [esp + 0x124]
test al, al
mov edx, dword [esp + 0x130]
mov ebp, edx
mov edi, dword [esp + 0x12c]
mov eax, edi
movdqa xmm6, xmm1
je 0x7996b4
cmp ecx, 0xc
je 0x798530
mov dword [esp + 0x12c], edi
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x110]
mov edx, dword [eax]
xor eax, eax
mov ebp, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xcc], ecx
movdqu xmm0, xmmword [esp + 0xb0]
nop dword [eax]
mov ecx, dword [esp + 0xd4]
mov esi, dword [esp + 0xd0]
test dword [esp + esi*4 + 0x134], ecx
jne 0x79903c
lea ecx, [edx + edx]
mov esi, dword [esp + 0x110]
mov dword [esi], ecx
mov edi, dword [esp + 0xe0]
mov esi, dword [edi]
shrd edx, esi, 0x1f
mov dword [edi], edx
movd xmm3, esi
movd edx, xmm0
shld ebp, edx, 1
mov edx, dword [esp + 0xc8]
movdqu xmm6, xmmword [edx]
pshufd xmm7, xmm6, 0xf9
shufps xmm3, xmm7, 0x20
shufps xmm7, xmm3, 0x24
psrld xmm7, 0x1f
paddd xmm6, xmm6
por xmm6, xmm7
movdqu xmmword [edx], xmm6
pshufd xmm3, xmm0, 0xf9
mov edx, dword [esp + 0xcc]
movd xmm6, edx
add edx, edx
mov dword [esp + 0xcc], edx
shufps xmm6, xmm3, 0x20
shufps xmm3, xmm6, 0x24
psrld xmm3, 0x1f
paddd xmm0, xmm0
por xmm0, xmm3
inc eax
cmp eax, 0xc1
mov edx, ecx
jbe 0x798f90
jmp 0x7996ca
mov eax, dword [esp + 0x90]
xor eax, edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x84]
xor edx, dword [eax]
mov dword [esp + 0x174], edx
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
xor edi, dword [eax]
mov dword [esp + 0x170], edi
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x80]
xor esi, dword [eax]
mov dword [esp + 0x16c], esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x7c]
xor ecx, dword [eax]
mov dword [esp + 0x168], ecx
mov eax, dword [esp + 0xc8]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], eax
mov eax, esi
mov dword [esp + 0x34], eax
mov esi, edi
mov dword [esp + 0x30], ebp
mov edx, dword [esp + 0x74]
xor edx, dword [esp + 0x38]
mov dword [esp + 0x74], edx
mov dword [esp + 0x164], edx
pxor xmm1, xmm0
mov edi, eax
mov eax, dword [esp + 0x130]
xor eax, dword [esp + 0xcc]
mov dword [esp + 0x130], eax
xor dword [esp + 0x12c], ebp
mov eax, ecx
shr eax, 1
mov ecx, dword [esp + 0x48]
or ecx, esi
or ecx, edi
mov ebp, dword [esp + 0x3c]
or ecx, ebp
or ecx, eax
or ecx, edx
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], edi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x10c], eax
movdqa xmm6, xmm1
mov edi, dword [esp + 0x12c]
mov ebp, dword [esp + 0xd4]
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x70], eax
mov eax, edi
mov edi, ebx
jne 0x7984c0
jmp 0x7996e3
mov ecx, dword [esp + 0x178]
xor ecx, dword [esp + 0x118]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x178], ecx
mov esi, dword [esp + 0x174]
mov eax, dword [esp + 0xe0]
xor esi, dword [eax]
mov dword [esp + 0x84], esi
mov dword [esp + 0x174], esi
mov eax, dword [esp + 0xc8]
movdqu xmm1, xmmword [eax]
mov edx, dword [esp + 0x2c]
movdqu xmm3, xmmword [edx]
pxor xmm3, xmm1
mov eax, ecx
shr eax, 1
pshufd xmm1, xmm3, 0xe7
mov ebx, edi
movd edi, xmm1
mov dword [esp + 0x78], edi
mov ecx, esi
or ecx, edi
mov edi, ebx
pshufd xmm1, xmm3, 0x4e
movd esi, xmm1
mov dword [esp + 0x80], esi
or ecx, esi
pshufd xmm1, xmm3, 0xe5
movd esi, xmm1
mov dword [esp + 0x7c], esi
or ecx, esi
or ecx, eax
mov ebx, dword [esp + 0xa8]
xor ebx, dword [esp + 0x11c]
mov esi, dword [esp + 0xac]
xor esi, dword [esp + 0x120]
movd eax, xmm3
mov dword [esp + 0x74], eax
or ecx, eax
movdqu xmmword [edx], xmm3
movdqu xmm1, xmmword [esp + 0xb0]
pxor xmm1, xmm4
movdqa xmm6, xmm1
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x70], eax
mov eax, esi
mov dword [esp + 0x12c], esi
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x130], ebx
mov ebx, 0xf
jne 0x798309
jmp 0x7996e3
xor ebx, 0x2fca3632
mov dword [esp + 0x108], ebx
mov al, bl
add al, 0x12
mov byte [esp + 0x120], al
pxor xmm0, xmm0
mov dword [esp + 0x104], 4
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0x10c], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
jmp 0x7994c0
mov eax, dword [esp + 0x114]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0xfc], eax
movdqa xmm0, xmm1
jmp 0x7994f0
mov ecx, esi
jmp 0x7993d5
mov edi, dword [esp + 0x130]
lea eax, [edi + edi]
movd edx, xmm2
shr edx, 0x1f
mov ebx, dword [esp + 0x12c]
lea esi, [ebx + ebx]
lea ecx, [edx + ebx*2]
mov edx, ecx
and edx, 7
mov ebx, eax
xor ebx, 0xc9
and esi, 8
cmove ebx, eax
mov dword [esp + 0x118], ebx
mov byte [esp + 0x120], 0x2e
pshufd xmm4, xmm2, 0xf9
movd xmm3, edi
shufps xmm3, xmm4, 0x20
shufps xmm4, xmm3, 0x24
psrld xmm4, 0x1f
movdqa xmm3, xmm2
paddd xmm3, xmm3
por xmm3, xmm4
test esi, esi
mov esi, 0xe
cmove edx, ecx
mov dword [esp + 0x11c], edx
mov edi, ebx
test dword [esp + 0x10c], ebp
mov eax, ebp
movdqa xmm4, xmm3
mov ebx, edx
mov edx, eax
mov eax, ebp
mov ecx, dword [esp + 0x128]
je 0x799538
mov dword [esp + 0x128], ecx
mov dword [esp + 0x124], ebp
mov ecx, 6
mov eax, dword [esp + 0x194]
mov edi, dword [eax + 0x14]
xor edi, dword [esp + 0x118]
movdqu xmm4, xmmword [eax + 4]
pxor xmm4, xmm3
mov ebx, dword [eax]
xor ebx, dword [esp + 0x11c]
cmp ecx, 3
jne 0x7994b2
mov dword [esp + 0x108], 0xf
mov ebp, dword [esp + 0x130]
lea eax, [ebp + ebp]
movd ecx, xmm2
shr ecx, 0x1f
mov edx, dword [esp + 0x12c]
lea esi, [edx + edx]
lea edx, [ecx + edx*2]
mov ebx, edx
and ebx, 7
mov edi, eax
xor edi, 0xc9
and esi, 8
cmove edi, eax
mov ecx, 9
test esi, esi
mov byte [esp + 0x120], 0x5a
pshufd xmm3, xmm2, 0xf9
movd xmm4, ebp
shufps xmm4, xmm3, 0x20
shufps xmm3, xmm4, 0x24
psrld xmm3, 0x1f
movdqa xmm4, xmm2
paddd xmm4, xmm4
por xmm4, xmm3
cmove ebx, edx
mov ebp, dword [esp + 0x124]
test dword [esp + 0x10c], ebp
movdqa xmm3, xmm4
mov dword [esp + 0x118], edi
mov dword [esp + 0x11c], ebx
mov edx, ebp
jne 0x7994c0
cmp ecx, 7
je 0x799340
mov esi, dword [esp + 0x128]
jmp 0x799543
cmp dword [esp + 0x108], 0xf
movdqa xmm3, xmm4
mov dword [esp + 0x118], edi
mov dword [esp + 0x11c], ebx
mov edx, ebp
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0x128]
je 0x7993d5
mov eax, dword [esp + 0x198]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x10c], eax
mov dword [esp + 0xf8], esi
mov ebp, edx
mov eax, dword [esp + 0x100]
mov dword [esp + 0x130], eax
movdqa xmm2, xmm0
mov ecx, esi
mov esi, 0x1a
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x104]
cmp esi, 0xe
mov esi, ecx
mov edx, ebp
mov ebp, eax
jne 0x799576
mov eax, 1
mov ebp, edx
shr ebp, 1
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], ebx
movdqa xmm2, xmm4
movdqa xmm1, xmm4
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], edi
je 0x79964e
mov dword [esp + 0x124], ebp
mov ecx, 3
movzx eax, byte [esp + 0x120]
cmp eax, 0x56
je 0x7995b0
mov ecx, 7
cmp eax, 0x5a
jne 0x7995c0
mov dword [esp + 0x128], esi
mov ebp, dword [esp + 0x124]
jmp 0x7994a9
mov dword [esp + 0x128], esi
jmp 0x79940b
mov ebp, dword [esp + 0x130]
lea ecx, [ebp + ebp]
movd edx, xmm2
shr edx, 0x1f
mov edi, dword [esp + 0x12c]
lea eax, [edi + edi]
lea edx, [edx + edi*2]
mov ebx, edx
and ebx, 7
mov edi, ecx
xor edi, 0xc9
and eax, 8
cmove edi, ecx
mov byte [esp + 0x120], 0x56
pshufd xmm3, xmm2, 0xf9
movd xmm4, ebp
shufps xmm4, xmm3, 0x20
shufps xmm3, xmm4, 0x24
psrld xmm3, 0x1f
movdqa xmm4, xmm2
paddd xmm4, xmm4
por xmm4, xmm3
test eax, eax
mov eax, 5
cmove ebx, edx
mov ebp, dword [esp + 0x124]
test dword [esp + 0x10c], ebp
movdqa xmm3, xmm4
mov dword [esp + 0x118], edi
mov dword [esp + 0x11c], ebx
mov edx, ebp
je 0x799543
cmp eax, 1
jne 0x799330
inc esi
mov dword [esp + 0x104], 0x80000000
cmp esi, 6
jne 0x799300
mov ecx, dword [esp + 0x110]
and ecx, 7
mov eax, dword [esp + 0x190]
mov dword [eax], ecx
movdqu xmmword [eax + 4], xmm1
mov ecx, dword [esp + 0x114]
mov dword [eax + 0x14], ecx
jmp 0x7996fe
xor eax, eax
jmp 0x7996e3
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xac]
movdqu xmm6, xmmword [esp + 0xb0]
jmp 0x7996e3
mov dword [esp + 0x10c], edx
mov eax, edi
jmp 0x7996df
mov dword [esp + 0x10c], edi
mov eax, ebp
jmp 0x7996df
mov eax, dword [esp + 0x130]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x12c]
movdqa xmm6, xmm1
and eax, 7
mov ecx, dword [esp + 0x190]
mov dword [ecx], eax
movdqu xmmword [ecx + 4], xmm6
mov eax, dword [esp + 0x10c]
mov dword [ecx + 0x14], eax
add esp, 0x17c
pop esi
pop edi
pop ebx
pop ebp
ret