Function at 0x77939f
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov edx, 1
push edi
push esi
push ebx
sub esp, 0x15c
mov ecx, dword [eax + 0x2990]
mov dword [esp + 0x158], eax
shl edx, cl
add edx, 4
mov dword [esp + 0x148], edx
mov edx, dword [esp + 0x158]
mov eax, dword [edx + 0x2020]
sub eax, 1
mov dword [edx + 0x2020], eax
add eax, 1
je 0x77949b
cmp dword [edx + 0xab0], 2
je 0x7796a7
mov ebx, dword [esp + 0x158]
mov edi, dword [ebx + 0x2018]
test edi, edi
jne 0x77947d
mov ecx, dword [esp + 0x158]
mov ebx, dword [ecx + 0x201c]
mov esi, dword [ecx + 0xa0]
mov edx, ecx
lea eax, [ebx - 1]
imul eax, esi
add eax, dword [ecx + 0x98]
mov ecx, dword [edx + 0x808]
mov edx, dword [ecx + eax*4 - 4]
mov eax, 0xffffffff
test dl, 7
jne 0x779472
imul ebx, esi
or dh, 8
lea esi, [ebx + edi]
mov dword [ecx + esi*4], edx
mov ecx, dword [esp + 0x158]
mov edx, dword [ecx + 0x1d48]
or edx, dword [ecx + 0x1d44]
or edx, dword [ecx + 0x1d64]
or edx, dword [ecx + 0x1d68]
jne 0x779470
mov dword [ecx + 0xa68], 1
xor eax, eax
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
mov ebx, dword [ebx + 0x201c]
mov edx, dword [esp + 0x158]
mov esi, dword [eax + 0xa0]
mov eax, ebx
imul eax, esi
add eax, edi
jmp 0x779425
mov ebx, dword [esp + 0x158]
mov eax, dword [ebx + 0xab0]
cmp eax, 2
je 0x779c51
cmp eax, 3
je 0x7796d6
add ebx, 0x2934
mov edi, dword [esp + 0x158]
mov dword [esp + 0xc0], ebx
mov ebx, dword [ebx + 8]
mov esi, dword [edi + 0x2934]
mov edx, ebx
mov ecx, ebx
mov ebp, dword [esp + 0xc0]
sar edx, 3
and ecx, 7
movzx eax, byte [edx + esi]
mov dword [esp + 0x14c], 1
shl al, cl
lea ecx, [ebx + 1]
test al, 0x80
mov dword [ebp + 8], ecx
jne 0x779533
mov ebp, ecx
and ecx, 7
lea eax, [ebx + 2]
sar ebp, 3
mov ebx, dword [esp + 0xc0]
movzx edx, byte [ebp + esi]
mov dword [ebx + 8], eax
mov dword [esp + 0x14c], 0x10001
shl dl, cl
and dl, 0x80
je 0x77b76c
test byte [esp + 0x14c], 7
jne 0x779950
test dword [esp + 0x14c], 0x20000000
je 0x779744
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + 0x2968]
mov dword [ecx + 0x1d3c], 1
cmp eax, 3
je 0x77a314
mov edi, dword [esp + 0x158]
sub eax, 1
or dword [esp + 0x14c], 0x80
mov dword [edi + 0x1d40], 3
mov dword [edi + 0x1d84], eax
test dword [esp + 0x14c], 0x10000
je 0x7795f7
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc0]
mov eax, dword [ebx + 8]
mov edx, eax
mov ecx, eax
add eax, 5
sar edx, 3
and ecx, 7
mov edx, dword [edx + esi]
mov dword [ebp + 8], eax
mov esi, dword [esp + 0x158]
bswap edx
shl edx, cl
mov ecx, dword [esi + 0x297c]
shr edx, 0xfb
test ecx, ecx
lea eax, [edx + edx]
je 0x7795ea
movzx eax, byte [edx + 0xcb5ac0]
mov edi, dword [esp + 0x158]
mov dword [edi + 0xa90], eax
mov esi, dword [esp + 0x158]
mov dword [esi + 0x1d94], 0
mov dword [esi + 0x1d98], 0
mov dword [esi + 0x1d9c], 0
mov dword [esi + 0x1da0], 0
mov dword [esi + 0x1d44], 0
mov dword [esi + 0x1d48], 0
mov ecx, dword [esp + 0x158]
xor eax, eax
test dword [esp + 0x14c], 0x20000
mov dword [ecx + 0x2024], 0
jne 0x779e59
mov esi, dword [esp + 0x158]
mov dword [esi + eax*4 + 0x22c8], 0xffffffff
add eax, 1
cmp eax, 0xb
jle 0x77965e
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0x14c]
mov eax, dword [ebp + 0xa0]
mov ecx, dword [ebp + 0x808]
imul eax, dword [ebp + 0x201c]
add eax, dword [ebp + 0x2018]
mov dword [ecx + eax*4], ebx
jmp 0x779470
mov esi, dword [edx + 0xa0]
mov ebx, dword [edx + 0x808]
mov dword [edx + 0xa68], 1
imul esi, dword [edx + 0x201c]
add esi, dword [edx + 0x2018]
mov dword [ebx + esi*4], 0x3808
jmp 0x779470
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x158]
mov ebx, dword [0xf6ff44]
add esi, 0x2934
mov edx, dword [esi + 8]
mov dword [esp + 0xc0], esi
mov esi, dword [edi + 0x2934]
mov eax, edx
mov ecx, edx
sar eax, 3
and ecx, 7
mov ebp, dword [eax + esi]
bswap ebp
shl ebp, cl
shr ebp, 0xfa
movsx ecx, word [ebx + ebp*4]
movsx eax, word [ebx + ebp*4 + 2]
add edx, eax
mov ebx, dword [esp + 0xc0]
test ecx, ecx
mov dword [ebx + 8], edx
js 0x77b7e0
mov ecx, dword [ecx*4 + 0xcb5ae0]
mov dword [esp + 0x14c], ecx
jmp 0x779533
mov eax, dword [esp + 0x158]
mov ebx, 2
mov ebp, dword [eax + 0x2970]
test ebp, ebp
jne 0x77979c
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc0]
mov edx, dword [eax + 8]
mov ebp, edx
mov ecx, edx
and ecx, 7
sar ebp, 3
mov edi, dword [ebp + esi]
bswap edi
shl edi, cl
lea ecx, [edx + 2]
shr edi, 0xfe
mov dword [ebx + 8], ecx
mov ebx, edi
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x2968], 3
je 0x779d65
test dword [esp + 0x14c], 0x10000
je 0x7797f5
mov ebp, dword [esp + 0xc0]
mov edi, dword [esp + 0x158]
mov eax, dword [ebp + 8]
mov edx, eax
mov ecx, eax
add eax, 5
sar edx, 3
and ecx, 7
mov edx, dword [edx + esi]
mov dword [ebp + 8], eax
bswap edx
mov esi, dword [edi + 0x297c]
shl edx, cl
shr edx, 0xfb
test esi, esi
lea eax, [edx + edx]
je 0x7797e8
movzx eax, byte [edx + 0xcb5ac0]
mov esi, dword [esp + 0x158]
mov dword [esi + 0xa90], eax
mov ebp, dword [esp + 0x14c]
mov edi, dword [esp + 0x158]
sar ebp, 0xd
and ebp, 3
cmp ebx, 2
mov dword [edi + 0x1d3c], ebp
je 0x77a18e
jg 0x779d17
sub ebx, 1
jne 0x779d20
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x2968], 3
mov dword [edi + 0x1d40], 3
je 0x77b58c
or dword [esp + 0x14c], 0x88
mov dword [esp + 0x58], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
xor edi, edi
mov ebp, 0x3000
mov ecx, edi
shl ebp, cl
test dword [esp + 0x14c], ebp
je 0x779928
mov ebp, dword [esp + 0xc0]
mov esi, dword [esp + 0x158]
mov edx, dword [ebp + 8]
mov ebx, dword [esi + 0x2934]
mov ecx, edx
sar ecx, 3
movzx eax, byte [ecx + ebx]
mov ecx, edx
add edx, 1
and ecx, 7
mov dword [ebp + 8], edx
mov ebp, dword [esp + 0x90]
shl al, cl
add ebp, dword [esp + 0x58]
shr al, 7
movzx ebx, al
mov dword [esi + edi*4 + 0x1d84], ebx
xor esi, esi
mov ecx, dword [esp + 0x158]
lea ebx, [edi + esi]
mov edx, dword [ecx + ebx*4 + 0x2958]
lea ebx, [ebp + esi]
mov eax, dword [ecx + ebx*4 + 0x1d94]
mov dword [esp], eax
mov eax, ecx
call fcn.00779282
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x158]
add edx, esi
add esi, 1
mov dword [ecx + ebx*4 + 0x1d94], eax
mov dword [ecx + ebx*4 + 0x1d9c], eax
cmp esi, 1
mov ebx, dword [esp + 0x158]
mov dword [ebx + edx*4 + 0x1d44], eax
jle 0x7798ce
add dword [esp + 0x58], 1
add edi, 2
add dword [esp + 0x90], 3
add dword [esp + 0x94], 8
cmp dword [esp + 0x58], 1
jle 0x779871
jmp 0x77963a
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + 0x29f0]
mov dword [esp], eax
call dword [ecx + 0xb14]
mov ecx, dword [esp + 0x158]
mov ebx, dword [ecx + 0x2998]
test ebx, ebx
je 0x77a368
mov ebx, dword [esp + 0x158]
cmp dword [ebx + 0x2968], 3
je 0x77a382
test dword [esp + 0x14c], 0x10000
jne 0x779cbf
mov edi, dword [esp + 0x158]
mov eax, dword [edi + 0x2978]
test eax, eax
je 0x77a174
cmp dword [edi + 0x2968], 3
je 0x7799c9
mov ebp, dword [esp + 0xc0]
add dword [ebp + 8], 1
mov ebx, dword [esp + 0x158]
mov eax, dword [ebx + 0x1d94]
mov edx, dword [ebx + 0x2958]
mov dword [esp], eax
mov eax, ebx
call fcn.00779282
mov esi, dword [esp + 0x158]
mov dword [esi + 0x1d9c], eax
mov dword [esi + 0x1d94], eax
mov dword [esi + 0x1d44], eax
mov edx, dword [esi + 0x295c]
mov ecx, dword [esi + 0x1d98]
mov eax, esi
mov dword [esp], ecx
call fcn.00779282
mov edi, dword [esp + 0xc0]
mov dword [esi + 0x1da0], eax
mov dword [esi + 0x1d98], eax
mov dword [esi + 0x1d48], eax
add dword [edi + 8], 1
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x30], 2
mov dword [edi + 0x2024], 1
je 0x77a3c7
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x158]
mov dword [esp + 0x6c], 0
add ebp, 0x22fc
add edi, 0x206c
mov dword [esp + 0x64], ebp
mov dword [esp + 0xc8], edi
mov ebx, dword [esp + 0x158]
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
mov eax, dword [ebx + esi*4 + 0x29c0]
mov edx, dword [ebx + 0xa90]
sub ecx, 3
xor ebx, ebx
cmp dword [esp + 0x6c], 4
mov dword [esp + 0x120], eax
cmovge ebx, ecx
mov dword [esp + 0x118], edx
mov eax, dword [esp + 0xc0]
mov edx, ebx
call fcn.00778b18
cmp eax, 0xfffe
jg 0x779d55
mov esi, dword [esp + 0x158]
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0x120]
mov ebp, dword [esi + ebx*4 + 0x9f0]
mov edx, dword [esi + 0x2934]
mov dword [esp + 0x11c], 0
add ebp, eax
movzx eax, word [ecx]
mov ecx, dword [0xb4647c]
mov dword [esi + ebx*4 + 0x9f0], ebp
imul eax, ebp
mov dword [esp + 0x68], edx
mov word [edi], ax
mov edi, dword [esi + 0x293c]
mov dword [esp + 0xcc], ecx
jmp 0x779b7c
add dword [esp + 0x11c], eax
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0xc8]
mov edi, dword [esp + 0x11c]
imul ebx, dword [esp + 0x118]
movzx ecx, byte [edi + eax]
mov edi, esi
sar edi, 0xff
movzx eax, word [edx + ecx*2]
imul ebx, eax
sar ebx, 4
lea edx, [ebx - 1]
or edx, 1
xor edx, edi
sub edx, edi
lea edi, [ebp + 1]
cmp dword [esp + 0x11c], 0x3f
jg 0x779e27
mov eax, dword [esp + 0x120]
mov word [eax + ecx*2], dx
mov esi, edi
mov ecx, edi
mov ebx, dword [esp + 0x68]
sar esi, 3
and ecx, 7
mov edx, dword [esi + ebx]
mov esi, dword [esp + 0xcc]
bswap edx
shl edx, cl
mov eax, edx
shr eax, 0xf7
movsx ecx, byte [esi + eax*4 + 2]
test ecx, ecx
movsx ebx, word [esi + eax*4]
js 0x779da3
mov esi, edx
mov ebp, dword [esp + 0xcc]
shl esi, cl
cmp ebx, 0x7f
movzx eax, byte [ebp + eax*4 + 3]
lea ebp, [edi + ecx]
je 0x779df3
test ebx, ebx
jne 0x779b22
lea ecx, [ebp + 6]
shr esi, 0xfa
lea ebx, [esi + 1]
mov edx, ecx
mov esi, dword [esp + 0x68]
and ecx, 7
sar edx, 3
lea edi, [ebp + 0xe]
mov eax, dword [edx + esi]
bswap eax
shl eax, cl
mov edx, eax
shl eax, 8
sar edx, 0xf8
cmp edx, 0xffffff80
je 0x779dbd
test edx, edx
jne 0x779c0e
mov edx, eax
shr edx, 0xf8
lea edi, [ebp + 0x16]
add dword [esp + 0x11c], ebx
mov ebx, dword [esp + 0x64]
test edx, edx
mov ebp, dword [esp + 0x11c]
movzx ecx, byte [ebp + ebx]
js 0x779dcb
mov ebx, dword [esp + 0xc8]
imul edx, dword [esp + 0x118]
movzx ebp, word [ebx + ecx*2]
imul edx, ebp
sar edx, 4
sub edx, 1
or edx, 1
jmp 0x779b63
mov esi, dword [esp + 0x158]
mov ebx, dword [0xf6ff34]
add esi, 0x2934
mov dword [esp + 0xc0], esi
mov edi, dword [esp + 0xc0]
mov edx, dword [edi + 8]
mov edi, dword [esp + 0x158]
mov eax, edx
mov ecx, edx
mov esi, dword [edi + 0x2934]
sar eax, 3
and ecx, 7
mov ebp, dword [eax + esi]
bswap ebp
shl ebp, cl
shr ebp, 0xfa
movsx ecx, word [ebx + ebp*4]
movsx eax, word [ebx + ebp*4 + 2]
add edx, eax
mov ebx, dword [esp + 0xc0]
test ecx, ecx
mov dword [ebx + 8], edx
js 0x77b7ad
mov ecx, dword [ecx*4 + 0xcb5b0c]
jmp 0x779738
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0x158]
mov esi, dword [edi + 8]
mov eax, dword [ebp + 0x2934]
mov edx, esi
mov ecx, esi
add esi, 5
sar edx, 3
and ecx, 7
mov eax, dword [edx + eax]
mov dword [edi + 8], esi
bswap eax
mov ebx, dword [ebp + 0x297c]
shl eax, cl
shr eax, 0xfb
test ebx, ebx
je 0x77a64c
movzx eax, byte [eax + 0xcb5ac0]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xa90], eax
jmp 0x7799a0
cmp ebx, 3
je 0x77ae2b
mov edx, dword [esp + 0x158]
mov esi, dword [edx + 0x201c]
mov dword [esp + 0x10], esi
mov ebx, dword [edx + 0x2018]
mov dword [esp + 8], 0xcb5cf4
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0x10
mov eax, dword [edx]
mov dword [esp], eax
call fcn.00961b69
add esp, 0x15c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
test dword [esp + 0x14c], 0x20000
je 0x77979c
mov ebp, ecx
and ecx, 7
add edx, 3
sar ebp, 3
movzx eax, byte [ebp + esi]
shl al, cl
mov ecx, dword [esp + 0xc0]
shr al, 7
mov dword [ecx + 8], edx
movzx edx, al
mov dword [edi + 0x29a8], edx
jmp 0x77979c
shl edx, 9
add edi, 9
mov eax, edx
shr eax, cl
add eax, ebx
movsx ebx, word [esi + eax*4]
movsx ecx, byte [esi + eax*4 + 2]
jmp 0x779bae
shr eax, 0xf8
lea edx, [eax - 0x100]
jmp 0x779c0b
neg edx
mov esi, dword [esp + 0xc8]
imul edx, dword [esp + 0x118]
movzx eax, word [esi + ecx*2]
imul edx, eax
sar edx, 4
sub edx, 1
or edx, 1
neg edx
jmp 0x779b63
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x11c]
mov dword [edi + 0x293c], ebp
mov dword [edi + ecx*4 + 0x22c8], edx
add ecx, 1
cmp ecx, 5
mov dword [esp + 0x6c], ecx
jle 0x779a7a
jmp 0x779678
mov esi, dword [esp + 0x158]
mov ebp, dword [esi + 0x201c]
mov dword [esp + 0x10], ebp
mov edi, dword [esi + 0x2018]
mov dword [esp + 8], 0xcb5d0d
mov dword [esp + 0xc], edi
mov dword [esp + 4], 0x10
mov eax, dword [esi]
jmp 0x779d4d
mov edx, dword [ecx + 0x29f0]
mov dword [esp], edx
call dword [ecx + 0xb14]
mov edi, dword [esp + 0xc0]
mov ebx, dword [0xf6ff54]
mov edx, dword [edi + 8]
mov edi, dword [esp + 0x158]
mov ebp, edx
mov ecx, edx
mov esi, dword [edi + 0x2934]
sar ebp, 3
and ecx, 7
mov eax, dword [ebp + esi]
bswap eax
shl eax, cl
shr eax, 0xf7
movsx ebp, word [ebx + eax*4 + 2]
movsx ecx, word [ebx + eax*4]
add edx, ebp
mov eax, dword [esp + 0xc0]
cmp dword [esp + 0x148], 6
mov dword [eax + 8], edx
mov dword [esp + 0x50], ecx
jg 0x77a8be
mov edi, dword [esp + 0x50]
test edi, edi
jle 0x77b801
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x30], 2
je 0x77a910
mov esi, dword [esp + 0x158]
test byte [esi + 0x40], 1
je 0x77a653
add esi, 0x22fc
mov ebx, dword [0xb4647c]
mov dword [esp + 0x38], 0
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
test byte [esp + 0x50], 0x20
je 0x77a0c4
mov esi, dword [esp + 0x158]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x158]
mov edx, dword [esi + ecx*4 + 0x29c0]
mov edi, dword [ebx + 0x2934]
mov dword [esp + 0xe0], 0xffffffff
mov dword [esp + 0xe4], edx
mov edx, dword [esi + 0xa90]
mov esi, dword [ebx + 0x293c]
mov eax, esi
mov ecx, esi
mov dword [esp + 0xdc], edx
sar eax, 3
and ecx, 7
mov dword [esp + 0x34], edi
mov ebx, dword [eax + edi]
bswap ebx
shl ebx, cl
test ebx, ebx
jns 0x779fe8
jmp 0x77a0f3
add dword [esp + 0xe0], eax
lea eax, [edx + edx + 1]
mov ecx, dword [esp + 0xb4]
imul eax, dword [esp + 0xdc]
mov esi, dword [esp + 0xe0]
sar eax, 1
movzx ebp, byte [esi + ecx]
mov esi, ebx
lea edx, [eax - 1]
sar esi, 0xff
lea ecx, [ebx + ebx]
or edx, 1
xor edx, esi
sub edx, esi
lea esi, [edi + 1]
mov edi, dword [esp + 0xe4]
cmp ecx, 0xbfffffff
mov word [edi + ebp*2], dx
jle 0x77a133
mov ebp, esi
mov ecx, esi
mov edx, dword [esp + 0x34]
sar ebp, 3
and ecx, 7
mov ebx, dword [ebp + edx]
bswap ebx
shl ebx, cl
mov ecx, dword [esp + 0xb0]
mov eax, ebx
shr eax, 0xf7
movsx edx, word [ecx + eax*4]
movsx ecx, byte [ecx + eax*4 + 2]
test ecx, ecx
js 0x77a097
mov edi, dword [esp + 0xb0]
shl ebx, cl
test edx, edx
movzx eax, byte [edi + eax*4 + 3]
lea edi, [esi + ecx]
jne 0x779f7f
lea ecx, [edi + 6]
mov ebp, dword [esp + 0x34]
shr ebx, 0xfa
mov edx, ecx
and ecx, 7
add ebx, 1
sar edx, 3
lea esi, [edi + 0xe]
mov eax, dword [edx + ebp]
bswap eax
shl eax, cl
mov ecx, eax
mov edx, eax
sar edx, 0xf8
shl ecx, 8
cmp edx, 0xffffff80
je 0x77a0b9
test edx, edx
jne 0x77a05d
mov edx, ecx
shr edx, 0xf8
mov ecx, eax
lea esi, [edi + 0x16]
shl ecx, 0x10
add dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0xb4]
test edx, edx
mov edi, dword [esp + 0xe0]
movzx ebp, byte [edi + ebx]
js 0x77a157
lea ebx, [edx + edx + 1]
imul ebx, dword [esp + 0xdc]
sar ebx, 1
lea edx, [ebx - 1]
or edx, 1
jmp 0x779fbb
shl ebx, 9
mov ebp, dword [esp + 0xb0]
add esi, 9
mov eax, ebx
shr eax, cl
add eax, edx
movsx edx, word [ebp + eax*4]
movsx ecx, byte [ebp + eax*4 + 2]
jmp 0x77a005
shr ecx, 0xf8
lea edx, [ecx - 0x100]
jmp 0x77a055
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x158]
mov dword [ecx + edx*4 + 0x22c8], 0xffffffff
add dword [esp + 0x38], 1
shl dword [esp + 0x50], 1
cmp dword [esp + 0x38], 5
jle 0x779f11
jmp 0x779678
lea eax, [edx + edx*2]
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0xe0], 0
sar eax, 1
sub eax, 1
or eax, 1
mov edi, eax
neg edi
test ebx, 0x40000000
cmovne eax, edi
shl ebx, 2
add esi, 2
cmp ebx, 0xbfffffff
mov word [ebp], ax
jg 0x779fe8
lea edi, [esi + 2]
mov ebx, dword [esp + 0xe0]
mov esi, dword [esp + 0x158]
mov eax, dword [esp + 0x38]
mov dword [esi + 0x293c], edi
mov dword [esi + eax*4 + 0x22c8], ebx
jmp 0x77a0da
neg edx
lea eax, [edx + edx + 1]
imul eax, dword [esp + 0xdc]
sar eax, 1
lea edx, [eax - 1]
or edx, 1
neg edx
jmp 0x779fbb
mov edi, dword [esp + 0x158]
cld
mov ecx, 8
add edi, 0x1d94
rep stosd dword es:[edi], eax
jmp 0x779a32
mov ebx, dword [esp + 0x158]
cmp dword [ebx + 0x2968], 3
je 0x77af0f
mov ebx, dword [esp + 0x158]
or dword [esp + 0x14c], 0x90
mov dword [esp + 0x60], 0
mov dword [ebx + 0x1d40], 2
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov esi, 0x3000
movzx ecx, byte [esp + 0x88]
shl esi, cl
test dword [esp + 0x14c], esi
je 0x77a2e7
mov edi, dword [esp + 0x84]
mov dword [esp + 0x150], 0
mov ebp, dword [esp + 0x80]
add edi, dword [esp + 0x60]
mov esi, dword [esp + 0xc0]
mov ebx, dword [esp + 0x88]
mov edx, dword [esi + 8]
mov esi, dword [esp + 0x158]
add ebx, dword [esp + 0x150]
mov ecx, edx
mov eax, dword [esi + 0x2934]
sar ecx, 3
movzx eax, byte [ecx + eax]
mov ecx, edx
add edx, 1
and ecx, 7
shl al, cl
mov ecx, dword [esp + 0xc0]
shr al, 7
mov dword [ecx + 8], edx
movzx edx, al
mov dword [esi + ebx*4 + 0x1d84], edx
xor esi, esi
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x158]
add ecx, esi
mov edx, dword [ebx + ecx*4 + 0x2958]
lea ebx, [edi + esi]
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + ebx*4 + 0x1d94]
mov dword [esp], eax
mov eax, ecx
call fcn.00779282
lea edx, [ebp + esi]
mov ecx, dword [esp + 0x158]
add esi, 1
mov dword [ecx + ebx*4 + 0x1d94], eax
mov ebx, dword [esp + 0x158]
cmp esi, 1
mov dword [ebx + edx*4 + 0x1d44], eax
jle 0x77a271
add dword [esp + 0x150], 1
add edi, 2
add ebp, 2
cmp dword [esp + 0x150], 1
jle 0x77a220
add dword [esp + 0x60], 1
add dword [esp + 0x80], 8
add dword [esp + 0x84], 3
add dword [esp + 0x88], 2
cmp dword [esp + 0x60], 1
jle 0x77a1e7
jmp 0x77963a
mov ebp, dword [ecx + 0x2970]
test ebp, ebp
jne 0x77a352
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0x158]
mov edx, dword [edi + 8]
mov ebp, edx
mov ecx, edx
add edx, 1
sar ebp, 3
and ecx, 7
movzx eax, byte [ebp + esi]
mov dword [edi + 8], edx
shl al, cl
shr al, 7
movzx eax, al
mov dword [ebx + 0x29a8], eax
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0x1d40], 0
jmp 0x779597
mov edi, dword [ecx + 0x29f0]
add edi, 0x300
mov dword [esp], edi
call dword [ecx + 0xb14]
jmp 0x77997b
mov esi, dword [ebx + 0x2970]
test esi, esi
jne 0x77998f
mov ebp, dword [esp + 0xc0]
mov esi, dword [ebx + 0x2934]
mov edi, dword [ebp + 8]
mov edx, edi
mov ecx, edi
add edi, 1
sar edx, 3
and ecx, 7
movzx eax, byte [edx + esi]
mov dword [ebp + 8], edi
shl al, cl
shr al, 7
movzx edx, al
mov dword [ebx + 0x29a8], edx
jmp 0x77998f
test byte [edi + 0x40], 1
je 0x77ab47
lea edx, [edi + 0x22fc]
mov dword [esp + 0x154], 0
mov dword [esp + 0xc4], edx
mov edi, dword [esp + 0x154]
mov ecx, dword [esp + 0x158]
mov esi, dword [esp + 0x158]
mov eax, dword [ecx + edi*4 + 0x29c0]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esi + 0xa90]
cmp dword [esp + 0x154], 3
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], ebx
mov dword [esp + 0x138], ebp
jg 0x77a602
mov edx, dword [esp + 0x158]
xor ebx, ebx
add edx, 0x206c
mov dword [esp + 0x13c], edx
mov edx, ebx
mov eax, dword [esp + 0xc0]
call fcn.00778b18
cmp eax, 0xfffe
jg 0x77a5e7
mov esi, dword [esp + 0x158]
mov ecx, 3
mov edx, 0xb46380
add eax, dword [esi + ebx*4 + 0x9f0]
sub ecx, dword [esi + 0x296c]
mov edi, 0xb46440
mov dword [esi + ebx*4 + 0x9f0], eax
mov ebx, dword [esp + 0x158]
shl eax, cl
mov ecx, dword [ebx + 0x2980]
mov ebp, dword [esp + 0x144]
mov esi, dword [ebx + 0x293c]
test ecx, ecx
mov word [ebp], ax
mov eax, dword [ebx + 0x2934]
cmove edx, edi
mov dword [esp + 0x7c], eax
mov ebp, dword [edx + 0x3c]
jmp 0x77a505
add dword [esp + 0x140], eax
add esi, 1
mov edx, dword [esp + 0x140]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x138]
imul edx, ebx
mov ebx, dword [esp + 0x13c]
movzx eax, word [ebx + ecx*2]
mov ebx, edi
sar ebx, 0xff
imul edx, eax
sar edx, 4
xor edx, ebx
sub edx, ebx
mov eax, dword [esp + 0x144]
mov word [eax + ecx*2], dx
mov eax, esi
mov ecx, esi
mov ebx, dword [esp + 0x7c]
sar eax, 3
and ecx, 7
mov edx, dword [eax + ebx]
bswap edx
shl edx, cl
mov eax, edx
shr eax, 0xf7
movsx ecx, byte [ebp + eax*4 + 2]
test ecx, ecx
movsx ebx, word [ebp + eax*4]
js 0x77a59d
mov edi, edx
add esi, ecx
movzx eax, byte [ebp + eax*4 + 3]
shl edi, cl
cmp ebx, 0x7f
je 0x77a5b8
test ebx, ebx
jne 0x77a4c2
lea ecx, [esi + 6]
mov ebx, dword [esp + 0x7c]
shr edi, 0xfa
mov eax, ecx
and ecx, 7
add esi, 0x12
sar eax, 3
mov eax, dword [eax + ebx]
bswap eax
shl eax, cl
mov ecx, dword [esp + 0x140]
sar eax, 0xf4
test eax, eax
lea edi, [edi + ecx + 1]
mov dword [esp + 0x140], edi
movzx ecx, byte [edi]
js 0x77a628
mov edx, dword [esp + 0x138]
mov edi, dword [esp + 0x13c]
imul edx, eax
movzx ebx, word [edi + ecx*2]
imul edx, ebx
sar edx, 4
jmp 0x77a4fa
shl edx, 9
add esi, 9
mov eax, edx
shr eax, cl
add eax, ebx
movsx ebx, word [ebp + eax*4]
movsx ecx, byte [ebp + eax*4 + 2]
jmp 0x77a52d
mov ebp, dword [esp + 0x158]
sub dword [esp + 0x140], ebp
mov dword [ebp + 0x293c], esi
mov esi, dword [esp + 0x154]
mov edx, dword [esp + 0x140]
sub edx, 0x22fc
mov dword [ebp + esi*4 + 0x22c8], edx
add dword [esp + 0x154], 1
cmp dword [esp + 0x154], 5
jle 0x77a3e9
jmp 0x779678
mov ebp, dword [esp + 0x154]
mov esi, dword [esp + 0x158]
and ebp, 1
add esi, 0x20ec
lea ebx, [ebp + 1]
mov dword [esp + 0x13c], esi
jmp 0x77a44b
mov edx, eax
mov eax, dword [esp + 0x13c]
neg edx
movzx edi, word [eax + ecx*2]
imul edx, dword [esp + 0x138]
imul edx, edi
sar edx, 4
neg edx
jmp 0x77a4fa
add eax, eax
jmp 0x779d05
mov esi, dword [esp + 0x158]
mov ebp, dword [esp + 0x158]
mov dword [esp + 0x30], 0
add esi, 0x22fc
add ebp, 0x216c
mov dword [esp + 0xbc], esi
mov dword [esp + 0xb8], ebp
test byte [esp + 0x50], 0x20
je 0x77a88f
mov edi, dword [esp + 0x158]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xd4], 0xffffffff
mov ebp, dword [edi + esi*4 + 0x29c0]
mov ebx, dword [edi + 0xa90]
mov edi, dword [esp + 0x158]
mov esi, dword [edi + 0x293c]
mov edx, dword [edi + 0x2934]
mov dword [esp + 0xd0], ebx
mov eax, esi
mov ecx, esi
mov dword [esp + 0xd8], ebp
sar eax, 3
and ecx, 7
mov dword [esp + 0x2c], edx
mov ebx, dword [eax + edx]
bswap ebx
shl ebx, cl
test ebx, ebx
js 0x77ad82
mov edi, dword [0xb4647c]
mov dword [esp + 0x28], edi
jmp 0x77a784
add dword [esp + 0xd4], eax
mov esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xd4]
movzx edi, byte [eax + esi]
lea eax, [edx + edx + 1]
mov esi, ebx
movzx edx, word [ecx + edi*2]
imul eax, dword [esp + 0xd0]
sar esi, 0xff
imul eax, edx
lea ecx, [ebx + ebx]
sar eax, 5
lea edx, [eax - 1]
or edx, 1
xor edx, esi
sub edx, esi
lea esi, [ebp + 1]
cmp dword [esp + 0xd4], 0x3f
jg 0x77adf9
mov ebx, dword [esp + 0xd8]
cmp ecx, 0xbfffffff
mov word [ebx + edi*2], dx
jle 0x77add2
mov ebp, esi
mov ecx, esi
mov edi, dword [esp + 0x2c]
sar ebp, 3
and ecx, 7
mov ebx, dword [ebp + edi]
bswap ebx
shl ebx, cl
mov ecx, dword [esp + 0x28]
mov eax, ebx
shr eax, 0xf7
movsx edx, word [ecx + eax*4]
movsx ecx, byte [ecx + eax*4 + 2]
test ecx, ecx
js 0x77a839
mov edi, dword [esp + 0x28]
shl ebx, cl
test edx, edx
movzx eax, byte [edi + eax*4 + 3]
lea ebp, [esi + ecx]
jne 0x77a6fe
lea ecx, [ebp + 6]
mov edi, dword [esp + 0x2c]
shr ebx, 0xfa
mov edx, ecx
and ecx, 7
add ebx, 1
sar edx, 3
lea esi, [ebp + 0xe]
mov eax, dword [edx + edi]
bswap eax
shl eax, cl
mov ecx, eax
mov edx, eax
sar edx, 0xf8
shl ecx, 8
cmp edx, 0xffffff80
je 0x77a858
test edx, edx
jne 0x77a7f3
mov edx, ecx
shr edx, 0xf8
mov ecx, eax
lea esi, [ebp + 0x16]
shl ecx, 0x10
add dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0xbc]
test edx, edx
mov ebp, dword [esp + 0xd4]
movzx edi, byte [ebp + ebx]
js 0x77a863
lea ebp, [edx + edx + 1]
mov edx, dword [esp + 0xb8]
movzx eax, word [edx + edi*2]
imul ebp, dword [esp + 0xd0]
imul ebp, eax
sar ebp, 5
lea edx, [ebp - 1]
or edx, 1
jmp 0x77a749
shl ebx, 9
mov ebp, dword [esp + 0x28]
add esi, 9
mov eax, ebx
shr eax, cl
add eax, edx
movsx edx, word [ebp + eax*4]
movsx ecx, byte [ebp + eax*4 + 2]
jmp 0x77a79e
shr ecx, 0xf8
lea edx, [ecx - 0x100]
jmp 0x77a7eb
neg edx
mov ebx, dword [esp + 0xb8]
lea eax, [edx + edx + 1]
movzx edx, word [ebx + edi*2]
imul eax, dword [esp + 0xd0]
imul eax, edx
sar eax, 5
lea edx, [eax - 1]
or edx, 1
neg edx
jmp 0x77a749
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x158]
mov dword [edi + edx*4 + 0x22c8], 0xffffffff
add dword [esp + 0x30], 1
shl dword [esp + 0x50], 1
cmp dword [esp + 0x30], 5
jle 0x77a683
jmp 0x779678
mov ebx, dword [esp + 0x148]
mov ebp, edx
sub ebx, 6
sar ebp, 3
mov ecx, ebx
mov eax, dword [ebp + esi]
mov esi, dword [edi + 0x29f0]
shl dword [esp + 0x50], cl
mov ecx, edx
bswap eax
and ecx, 7
add edx, ebx
add esi, 0x300
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0xc0]
neg cl
mov dword [ebx + 8], edx
shr eax, cl
mov dword [esp], esi
or dword [esp + 0x50], eax
call dword [edi + 0xb14]
jmp 0x779ec1
test byte [edi + 0x40], 1
je 0x77afc8
add edi, 0x22fc
mov dword [esp + 0x4c], 0
mov ebp, dword [0xb4647c]
mov dword [esp + 0xa8], edi
test byte [esp + 0x50], 0x20
je 0x77aaa2
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x158]
mov edx, dword [esi + edi*4 + 0x29c0]
mov ebx, dword [ecx + 0x2934]
mov dword [esp + 0x100], 0xffffffff
mov dword [esp + 0x104], edx
mov edx, dword [esi + 0xa90]
mov esi, dword [ecx + 0x293c]
mov eax, esi
mov ecx, esi
mov dword [esp + 0x48], ebx
sar eax, 3
and ecx, 7
mov dword [esp + 0xfc], edx
mov ebx, dword [eax + ebx]
bswap ebx
shl ebx, cl
test ebx, ebx
jns 0x77aa05
jmp 0x77aad1
lea edx, [edx + edx + 1]
add dword [esp + 0x100], eax
mov eax, dword [esp + 0xa8]
imul edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x100]
add esi, 1
sar edx, 1
movzx edi, byte [ecx + eax]
mov ecx, ebx
sar ecx, 0xff
xor edx, ecx
sub edx, ecx
lea ecx, [ebx + ebx]
mov eax, dword [esp + 0x104]
cmp ecx, 0xbfffffff
mov word [eax + edi*2], dx
jle 0x77ab0a
mov edx, esi
mov ecx, esi
mov edi, dword [esp + 0x48]
sar edx, 3
and ecx, 7
mov ebx, dword [edx + edi]
bswap ebx
shl ebx, cl
mov eax, ebx
shr eax, 0xf7
movsx ecx, byte [ebp + eax*4 + 2]
test ecx, ecx
movsx edx, word [ebp + eax*4]
js 0x77aa87
shl ebx, cl
add esi, ecx
test edx, edx
movzx eax, byte [ebp + eax*4 + 3]
jne 0x77a9a3
lea ecx, [esi + 6]
mov edx, dword [esp + 0x48]
shr ebx, 0xfa
mov eax, ecx
and ecx, 7
add esi, 0x12
sar eax, 3
mov edi, dword [eax + edx]
mov eax, dword [esp + 0x100]
bswap edi
shl edi, cl
mov edx, edi
mov ecx, edi
lea edi, [ebx + eax + 1]
sar edx, 0xf4
shl ecx, 0xc
mov dword [esp + 0x100], edi
mov ebx, dword [esp + 0xa8]
test edx, edx
movzx edi, byte [edi + ebx]
js 0x77ab2e
lea edx, [edx + edx + 1]
imul edx, dword [esp + 0xfc]
sar edx, 1
jmp 0x77a9d9
shl ebx, 9
add esi, 9
mov eax, ebx
shr eax, cl
add eax, edx
movsx edx, word [ebp + eax*4]
movsx ecx, byte [ebp + eax*4 + 2]
jmp 0x77aa18
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x158]
mov dword [edi + edx*4 + 0x22c8], 0xffffffff
add dword [esp + 0x4c], 1
shl dword [esp + 0x50], 1
cmp dword [esp + 0x4c], 5
jle 0x77a935
jmp 0x779678
lea eax, [edx + edx*2]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x100], 0
sar eax, 1
mov edx, eax
neg edx
test ebx, 0x40000000
cmovne eax, edx
shl ebx, 2
add esi, 2
cmp ebx, 0xbfffffff
mov word [ecx], ax
jg 0x77aa05
lea ecx, [esi + 2]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0x158]
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x293c], ecx
mov dword [esi + eax*4 + 0x22c8], ebx
jmp 0x77aab8
lea ebx, [edx + edx]
neg ebx
lea edx, [ebx + 1]
imul edx, dword [esp + 0xfc]
sar edx, 1
neg edx
jmp 0x77a9d9
mov dword [esp + 0x78], 0
mov ecx, dword [esp + 0x148]
cmp dword [esp + 0x78], ecx
jge 0x779678
mov ebx, dword [esp + 0x158]
add ebx, 0x22fc
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x158]
mov esi, dword [esp + 0x78]
cmp dword [esp + 0x78], 3
mov ebp, dword [eax + esi*4 + 0x29c0]
mov edi, dword [eax + 0xa90]
mov dword [esp + 0x134], ebp
mov dword [esp + 0x128], edi
jg 0x77af4f
mov edx, dword [esp + 0x158]
xor ebx, ebx
add edx, 0x206c
mov dword [esp + 0x12c], edx
mov edx, ebx
mov eax, dword [esp + 0xc0]
call fcn.00778b18
cmp eax, 0xfffe
jg 0x779d55
mov ebp, dword [esp + 0x158]
mov ecx, 3
mov esi, dword [esp + 0x134]
add eax, dword [ebp + ebx*4 + 0x9f0]
sub ecx, dword [ebp + 0x296c]
mov edi, dword [ebp + 0x2980]
mov dword [ebp + ebx*4 + 0x9f0], eax
shl eax, cl
mov dword [esp + 0x130], 0
mov word [esi], ax
xor eax, 1
test edi, edi
cwde
mov dword [esp + 0x124], eax
mov eax, 0xb46380
jne 0x77ac29
mov eax, 0xb46440
mov ebx, dword [esp + 0x158]
mov ebp, dword [eax + 0x3c]
mov edx, dword [ebx + 0x2934]
mov edi, dword [ebx + 0x293c]
mov dword [esp + 0x74], edx
jmp 0x77aca2
add dword [esp + 0x130], eax
mov edx, dword [esp + 0x70]
add edi, 1
mov eax, dword [esp + 0x130]
movzx ecx, byte [eax + edx]
mov edx, dword [esp + 0x128]
imul edx, ebx
mov ebx, dword [esp + 0x12c]
movzx eax, word [ebx + ecx*2]
mov ebx, esi
sar ebx, 0xff
imul edx, eax
sar edx, 4
xor edx, ebx
sub edx, ebx
cmp dword [esp + 0x130], 0x3f
jg 0x77aee7
mov esi, dword [esp + 0x134]
xor dword [esp + 0x124], edx
mov word [esi + ecx*2], dx
mov eax, edi
mov ecx, edi
mov esi, dword [esp + 0x74]
sar eax, 3
and ecx, 7
mov edx, dword [eax + esi]
bswap edx
shl edx, cl
mov eax, edx
shr eax, 0xf7
movsx ecx, byte [ebp + eax*4 + 2]
test ecx, ecx
movsx ebx, word [ebp + eax*4]
js 0x77ad43
mov esi, edx
add edi, ecx
movzx eax, byte [ebp + eax*4 + 3]
shl esi, cl
cmp ebx, 0x7f
je 0x77af72
test ebx, ebx
jne 0x77ac45
lea ecx, [edi + 6]
mov ebx, dword [esp + 0x130]
mov edx, dword [esp + 0x74]
mov eax, ecx
and ecx, 7
shr esi, 0xfa
sar eax, 3
add edi, 0x12
mov eax, dword [eax + edx]
bswap eax
shl eax, cl
lea ecx, [esi + ebx + 1]
sar eax, 0xf4
mov esi, dword [esp + 0x70]
mov dword [esp + 0x130], ecx
test eax, eax
movzx ecx, byte [ecx + esi]
js 0x77ad5e
mov edx, dword [esp + 0x128]
mov ebx, dword [esp + 0x12c]
imul edx, eax
movzx eax, word [ebx + ecx*2]
imul edx, eax
sar edx, 4
jmp 0x77ac82
shl edx, 9
add edi, 9
mov eax, edx
shr eax, cl
add eax, ebx
movsx ebx, word [ebp + eax*4]
movsx ecx, byte [ebp + eax*4 + 2]
jmp 0x77acca
mov edx, eax
mov esi, dword [esp + 0x12c]
neg edx
movzx ebx, word [esi + ecx*2]
imul edx, dword [esp + 0x128]
imul edx, ebx
sar edx, 4
neg edx
jmp 0x77ac82
movzx ebp, word [edi + 0x216c]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xd4], 0
imul ebp, dword [esp + 0xd0]
lea eax, [ebp + ebp*2]
sar eax, 5
sub eax, 1
or eax, 1
mov edx, eax
neg edx
test ebx, 0x40000000
cmovne eax, edx
shl ebx, 2
add esi, 2
cmp ebx, 0xbfffffff
mov word [ecx], ax
jg 0x77a6ef
lea ebx, [esi + 2]
mov edx, dword [esp + 0x158]
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0x30]
mov dword [edx + 0x293c], ebx
mov dword [edx + eax*4 + 0x22c8], esi
jmp 0x77a8a5
mov edi, dword [esp + 0x158]
mov ebp, dword [edi + 0x201c]
mov dword [esp + 0x10], ebp
mov ecx, dword [edi + 0x2018]
mov dword [esp + 8], 0xcb5d0d
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0x10
mov eax, dword [edi]
jmp 0x779d4d
mov edx, dword [esp + 0x158]
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x158]
add esi, 0x1d58
mov dword [edx + 0x1d40], 4
add ebp, 0x1d5c
add edx, 0x1d54
add edi, 0x1d50
mov ebx, dword [esp + 0x158]
mov dword [esp + 0x9c], esi
mov dword [esp + 0x54], 0
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x98], edi
mov esi, ebx
mov ecx, dword [esp + 0x54]
mov eax, 0x3000
add ecx, ecx
shl eax, cl
test dword [esp + 0x14c], eax
jne 0x77b23a
add dword [esp + 0x54], 1
add esi, 0x10
add ebx, 0x20
add dword [esp + 0x98], 0x20
add dword [esp + 0x9c], 0x20
add dword [esp + 0xa0], 0x20
add dword [esp + 0xa4], 0x20
cmp dword [esp + 0x54], 1
jle 0x77ae96
jmp 0x77963a
mov edx, dword [esp + 0x158]
mov ecx, dword [edx + 0x201c]
mov dword [esp + 0x10], ecx
mov esi, dword [edx + 0x2018]
mov dword [esp + 8], 0xcb5d0d
mov dword [esp + 0xc], esi
jmp 0x779d43
or dword [esp + 0x14c], 8
mov dword [ebx + 0x1d40], 0
xor edi, edi
mov esi, ebx
lea ecx, [edi + edi]
mov eax, 0x3000
shl eax, cl
test dword [esp + 0x14c], eax
jne 0x77b453
add edi, 1
add esi, 0x20
add ebx, 0x10
cmp edi, 1
jle 0x77af25
jmp 0x77963a
mov ebx, dword [esp + 0x158]
mov ecx, dword [esp + 0x78]
add ebx, 0x20ec
and ecx, 1
mov dword [esp + 0x12c], ebx
lea ebx, [ecx + 1]
jmp 0x77abb9
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x158]
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x130]
mov ecx, dword [esp + 0x158]
mov dword [esi + 0x293c], edi
and eax, 1
mov ebx, dword [esp + 0x134]
mov dword [ecx + ebp*4 + 0x22c8], edx
mov edi, dword [esp + 0x148]
add ebp, 1
xor word [ebx + 0x7e], ax
cmp ebp, edi
mov dword [esp + 0x78], ebp
jl 0x77ab72
jmp 0x779678
mov ecx, 0xc
mov esi, dword [esp + 0x50]
mov dword [esp + 0x44], 0
sub ecx, dword [esp + 0x148]
mov ebp, dword [esp + 0x148]
shl esi, cl
cmp dword [esp + 0x44], ebp
mov dword [esp + 0x40], esi
jge 0x779678
mov eax, dword [esp + 0x158]
add eax, 0x22fc
mov dword [esp + 0xac], eax
test dword [esp + 0x40], 0x800
je 0x77b205
mov edi, dword [esp + 0x158]
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x158]
mov edx, dword [edi + ebp*4 + 0x29c0]
mov ebx, dword [edi + 0xa90]
cmp dword [esp + 0x44], 3
mov dword [esp + 0xf8], edx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xe8], 1
mov edi, dword [eax + 0x293c]
mov dword [esp + 0xf4], 0xffffffff
jg 0x77b574
add eax, 0x216c
mov dword [esp + 0xf0], eax
mov ebp, edi
mov esi, dword [esp + 0x158]
mov ecx, edi
sar ebp, 3
mov ebx, dword [esi + 0x2934]
and ecx, 7
mov dword [esp + 0x3c], ebx
mov ebx, dword [ebp + ebx]
bswap ebx
shl ebx, cl
test ebx, ebx
js 0x77b4e1
mov edx, dword [0xb4647c]
jmp 0x77b136
add dword [esp + 0xf4], eax
mov ecx, dword [esp + 0xac]
add edi, 1
mov eax, dword [esp + 0xf4]
movzx ebp, byte [eax + ecx]
lea ecx, [esi + esi + 1]
mov esi, dword [esp + 0xf0]
movzx eax, word [esi + ebp*2]
imul ecx, dword [esp + 0xec]
lea esi, [ebx + ebx]
imul ecx, eax
mov eax, ebx
sar eax, 0xff
sar ecx, 5
xor ecx, eax
sub ecx, eax
cmp dword [esp + 0xf4], 0x3f
jg 0x77aee7
xor dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xf8]
cmp esi, 0xbfffffff
mov word [eax + ebp*2], cx
jle 0x77b538
mov esi, edi
mov ecx, edi
mov ebp, dword [esp + 0x3c]
sar esi, 3
and ecx, 7
mov ebx, dword [esi + ebp]
bswap ebx
shl ebx, cl
mov eax, ebx
shr eax, 0xf7
movsx ecx, byte [edx + eax*4 + 2]
test ecx, ecx
movsx esi, word [edx + eax*4]
js 0x77b1c3
shl ebx, cl
add edi, ecx
test esi, esi
movzx eax, byte [edx + eax*4 + 3]
jne 0x77b0af
lea ecx, [edi + 6]
mov esi, dword [esp + 0x3c]
shr ebx, 0xfa
mov ebp, ecx
and ecx, 7
add edi, 0x12
sar ebp, 3
mov eax, dword [ebp + esi]
mov ebp, dword [esp + 0xf4]
bswap eax
shl eax, cl
mov ecx, eax
mov esi, eax
lea eax, [ebx + ebp + 1]
sar ecx, 0xf4
shl esi, 0xc
mov dword [esp + 0xf4], eax
mov ebx, dword [esp + 0xac]
test ecx, ecx
movzx ebp, byte [eax + ebx]
js 0x77b1dd
lea ecx, [ecx + ecx + 1]
mov ebx, dword [esp + 0xf0]
imul ecx, dword [esp + 0xec]
movzx eax, word [ebx + ebp*2]
imul ecx, eax
sar ecx, 5
jmp 0x77b0f4
shl ebx, 9
add edi, 9
mov eax, ebx
shr eax, cl
add eax, esi
movsx esi, word [edx + eax*4]
movsx ecx, byte [edx + eax*4 + 2]
jmp 0x77b148
lea eax, [ecx + ecx]
mov ebx, dword [esp + 0xf0]
neg eax
lea ecx, [eax + 1]
movzx eax, word [ebx + ebp*2]
imul ecx, dword [esp + 0xec]
imul ecx, eax
sar ecx, 5
neg ecx
jmp 0x77b0f4
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x158]
mov dword [esi + edx*4 + 0x22c8], 0xffffffff
add dword [esp + 0x44], 1
mov edi, dword [esp + 0x148]
shl dword [esp + 0x40], 1
cmp dword [esp + 0x44], edi
jl 0x77b00b
jmp 0x779678
mov edi, dword [esp + 0x158]
mov ecx, dword [esp + 0x54]
mov eax, dword [esi + 0x1d94]
mov edx, dword [edi + ecx*8 + 0x2958]
mov dword [esp], eax
mov eax, edi
call fcn.00779282
mov ebp, dword [esp + 0xc0]
mov ecx, dword [esp + 0x158]
mov dword [esi + 0x1d94], eax
mov dword [esi + 0x1d9c], eax
mov edi, eax
mov edx, dword [ebp + 8]
mov ebp, dword [ecx + 0x2934]
mov eax, edx
mov ecx, edx
sar eax, 3
and ecx, 7
movzx eax, byte [eax + ebp]
mov dword [esp + 0x110], 0
shl al, cl
lea ecx, [edx + 1]
mov byte [esp + 0x24], al
mov eax, dword [esp + 0xc0]
test byte [esp + 0x24], 0x80
mov dword [eax + 8], ecx
je 0x77b2e9
mov eax, ecx
and ecx, 7
add edx, 2
sar eax, 3
movzx eax, byte [eax + ebp]
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x110], 1
shl al, cl
mov dword [ebp + 8], edx
shr al, 7
movzx edx, al
add edx, edx
sub dword [esp + 0x110], edx
mov ebp, dword [esp + 0x158]
mov eax, dword [esp + 0x54]
mov ecx, dword [esi + 0x1d98]
mov edx, dword [ebp + eax*8 + 0x295c]
sar ecx, 1
mov eax, ebp
mov dword [esp], ecx
call fcn.00779282
mov ecx, dword [esp + 0x158]
mov ebp, eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [ecx + 0x2934]
mov edx, dword [eax + 8]
mov dword [esp + 0x108], ecx
mov eax, edx
sar eax, 3
movzx eax, byte [eax + ecx]
mov ecx, edx
mov dword [esp + 0x10c], 0
and ecx, 7
shl al, cl
mov ecx, dword [esp + 0xc0]
mov byte [esp + 0x24], al
lea eax, [edx + 1]
test byte [esp + 0x24], 0x80
mov dword [esp + 0x1c], eax
mov dword [ecx + 8], eax
je 0x77b3b2
sar eax, 3
mov ecx, dword [esp + 0x108]
add edx, 2
mov dword [esp + 0x24], eax
movzx ecx, byte [eax + ecx]
and dword [esp + 0x1c], 7
mov dword [esp + 0x10c], 1
mov dword [esp + 0x24], ecx
movzx ecx, byte [esp + 0x1c]
movzx eax, byte [esp + 0x24]
shl al, cl
mov ecx, dword [esp + 0xc0]
shr al, 7
mov dword [ecx + 8], edx
movzx edx, al
add edx, edx
sub dword [esp + 0x10c], edx
mov eax, dword [esp + 0x158]
lea edx, [ebp + ebp]
mov dword [ebx + 0x1d44], edi
mov ecx, dword [eax + 0x2968]
mov dword [esi + 0x1d98], edx
mov dword [esi + 0x1da0], edx
cmp ecx, 3
mov dword [ebx + 0x1d48], ebp
mov dword [ebx + 0x1d4c], edi
mov dword [ebx + 0x1d50], ebp
je 0x77b6b0
or dword [esp + 0x14c], 8
lea eax, [ebx + 0x1d50]
test edi, edi
mov dword [esp + 0x20], eax
jle 0x77b79f
lea eax, [edi + 1]
mov edx, dword [esp + 0x110]
sar eax, 1
lea edi, [eax + edx]
mov edx, dword [esp + 0x20]
test ebp, ebp
mov dword [edx + 4], edi
jle 0x77b78d
lea eax, [ebp + 1]
sar eax, 1
add eax, dword [esp + 0x10c]
mov ebp, dword [esp + 0xa4]
sub ecx, 1
mov dword [ebp + 4], eax
je 0x77b760
add dword [ebx + 0x1d58], 1
jmp 0x77aeb0
mov ecx, dword [esp + 0x158]
mov ebp, dword [ebx + 0x1d94]
mov eax, dword [esp + 0x158]
mov edx, dword [ecx + edi*8 + 0x2958]
mov dword [esp], ebp
call fcn.00779282
mov ecx, dword [esp + 0x158]
mov dword [ebx + 0x1d9c], eax
mov dword [ebx + 0x1d94], eax
mov dword [esi + 0x1d44], eax
mov eax, dword [ebx + 0x1d98]
mov edx, dword [ecx + edi*8 + 0x295c]
mov dword [esp], eax
mov eax, ecx
call fcn.00779282
mov ebp, dword [esp + 0x158]
mov edx, dword [ebp + edi*4 + 0x29a0]
mov dword [ebx + 0x1da0], eax
mov dword [ebx + 0x1d98], eax
test edx, edx
mov dword [esi + 0x1d48], eax
je 0x77af3c
add eax, eax
shl dword [esi + 0x1d44], 1
mov dword [esi + 0x1d48], eax
jmp 0x77af3c
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xf4], 0
movzx ebp, word [esi]
imul ebp, dword [esp + 0xec]
lea ecx, [ebp + ebp*2]
sar ecx, 5
mov edx, ecx
neg edx
test ebx, 0x40000000
cmove edx, ecx
shl ebx, 2
add edi, 2
mov word [eax], dx
xor edx, 1
cmp ebx, 0xbfffffff
mov dword [esp + 0xe8], edx
jg 0x77b0a4
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xf8]
lea ebp, [edi + 2]
and eax, 1
mov edx, dword [esp + 0x158]
mov ebx, dword [esp + 0xf4]
mov edi, dword [esp + 0x44]
xor word [ecx + 0x7e], ax
mov dword [edx + 0x293c], ebp
mov dword [edx + edi*4 + 0x22c8], ebx
jmp 0x77b21b
mov eax, dword [esp + 0x158]
add eax, 0x21ec
mov dword [esp + 0xf0], eax
jmp 0x77b079
or dword [esp + 0x14c], 0x90
mov dword [esp + 0x5c], 0
mov dword [esp + 0x8c], 0
xor edi, edi
mov ebp, 0x3000
mov ecx, edi
shl ebp, cl
test dword [esp + 0x14c], ebp
je 0x77b690
mov esi, dword [esp + 0x8c]
xor ebp, ebp
add esi, dword [esp + 0x5c]
mov dword [esp + 0x114], esi
mov esi, dword [esp + 0xc0]
lea ebx, [edi + ebp]
mov edx, dword [esi + 8]
mov esi, dword [esp + 0x158]
mov ecx, edx
mov eax, dword [esi + 0x2934]
sar ecx, 3
movzx eax, byte [ecx + eax]
mov ecx, edx
add edx, 1
and ecx, 7
shl al, cl
mov ecx, dword [esp + 0xc0]
shr al, 7
mov dword [ecx + 8], edx
movzx eax, al
mov edx, dword [esi + edi*4 + 0x2958]
mov ecx, dword [esi + ebx*8 + 0x1d94]
mov dword [esi + ebx*4 + 0x1d84], eax
mov eax, esi
mov dword [esp], ecx
call fcn.00779282
mov edx, dword [esp + 0x158]
mov dword [esi + ebx*8 + 0x1d94], eax
mov esi, dword [esp + 0x114]
mov ecx, edx
add esi, ebp
add ebp, 1
mov dword [edx + esi*8 + 0x1d44], eax
mov eax, dword [ecx + ebx*8 + 0x1d98]
mov edx, dword [edx + edi*4 + 0x295c]
sar eax, 1
mov dword [esp], eax
mov eax, ecx
call fcn.00779282
mov ecx, dword [esp + 0x158]
cmp ebp, 1
lea edx, [eax + eax]
mov dword [ecx + esi*8 + 0x1d48], eax
mov dword [ecx + ebx*8 + 0x1d98], edx
jle 0x77b5d6
add dword [esp + 0x5c], 1
add edi, 2
add dword [esp + 0x8c], 3
cmp dword [esp + 0x5c], 1
jle 0x77b5ac
jmp 0x77963a
mov ecx, dword [eax + 0x2974]
or dword [esp + 0x14c], 0x88
cmp ecx, 1
sbb eax, eax
and eax, 2
lea edx, [eax + 1]
mov eax, edi
imul eax, edx
test edi, edi
jle 0x77b6d8
add eax, 1
sar eax, 1
mov ecx, dword [esp + 0x98]
add eax, dword [esp + 0x110]
mov dword [ecx + 4], eax
mov eax, ebp
imul eax, edx
test ebp, ebp
jle 0x77b6f7
add eax, 1
sar eax, 1
mov ecx, dword [esp + 0x10c]
lea eax, [eax + ecx - 1]
mov ecx, dword [esp + 0xa4]
mov dword [ecx + 4], eax
mov ecx, 4
mov eax, edi
sub ecx, edx
imul eax, ecx
test edi, edi
jle 0x77b721
add eax, 1
sar eax, 1
mov edi, dword [esp + 0x9c]
add eax, dword [esp + 0x110]
mov dword [edi + 4], eax
mov eax, ebp
imul eax, ecx
test ebp, ebp
jle 0x77b7ce
add eax, 1
mov ebp, dword [esp + 0x10c]
sar eax, 1
lea eax, [eax + ebp + 1]
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 4], eax
jmp 0x77aeb0
sub dword [ebx + 0x1d58], 1
jmp 0x77aeb0
mov ecx, dword [edi + 0x201c]
mov dword [esp + 0x10], ecx
mov esi, dword [edi + 0x2018]
mov dword [esp + 8], 0xcb5d28
mov dword [esp + 0xc], esi
jmp 0x77ae1c
sar ebp, 1
mov edi, dword [esp + 0x10c]
lea eax, [ebp + edi]
jmp 0x77b434
sar edi, 1
add edi, dword [esp + 0x110]
jmp 0x77b419
mov ebp, dword [edi + 0x201c]
mov dword [esp + 0x10], ebp
mov edx, dword [edi + 0x2018]
mov dword [esp + 8], 0xcb5d50
mov dword [esp + 0xc], edx
jmp 0x77ae1c
sar eax, 1
mov edx, dword [esp + 0x10c]
lea eax, [eax + edx + 1]
jmp 0x77b751
mov ebp, dword [edi + 0x201c]
mov dword [esp + 0x10], ebp
mov edx, dword [edi + 0x2018]
mov dword [esp + 8], 0xcb5d78
mov dword [esp + 0xc], edx
jmp 0x77ae1c
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x201c]
mov dword [esp + 0x10], eax
mov edx, dword [esi + 0x2018]
mov dword [esp + 8], 0xcb5d9d
mov dword [esp + 0xc], edx
jmp 0x779e4a